ids_to_terms ids_to_father_ids ids_to_inner_sorts ids_to_inner_types
ids_to_hypotheses hypotheses_seed in
let eta_fix metasenv context t =
- if eta_fix then E.eta_fix metasenv context t else t
- in
+ let t = if eta_fix then E.eta_fix metasenv context t else t in
+ Unshare.unshare t in
let aobj =
match obj with
C.Constant (id,Some bo,ty,params,attrs) ->
C.ACurrentProof
("mettereaposto","mettereaposto2",id,aconjectures,abo,aty,params,attrs)
| C.InductiveDefinition (tys,params,paramsno,attrs) ->
+ let tys =
+ List.map
+ (fun (name,i,arity,cl) ->
+ (name,i,Unshare.unshare arity,
+ List.map (fun (name,ty) -> name,Unshare.unshare ty) cl)) tys in
let context =
List.map
- (fun (name,_,arity,_) -> Some (C.Name name, C.Decl arity)) tys in
+ (fun (name,_,arity,_) -> Some (C.Name name, C.Decl (Unshare.unshare arity))) tys in
let idrefs = List.map (function _ -> gen_id seed) tys in
let atys =
List.map2
aobj,ids_to_terms,ids_to_father_ids,ids_to_inner_sorts,ids_to_inner_types,
ids_to_conjectures,ids_to_hypotheses
;;
-
-