let aconjecture_of_conjecture' = aconjecture_of_conjecture seed
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 =
+ let eta_fix_and_unshare metasenv context t =
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) ->
- let bo' = (*eta_fix [] []*) bo in
- let ty' = eta_fix [] [] ty in
+ let bo' = (*eta_fix_and_unshare[] [] bo*) Unshare.unshare bo in
+ let ty' = eta_fix_and_unshare [] [] ty in
let abo = acic_term_of_cic_term' ~computeinnertypes:true bo' (Some ty') in
let aty = acic_term_of_cic_term' ~computeinnertypes:false ty' None in
C.AConstant
("mettereaposto",Some "mettereaposto2",id,Some abo,aty,params,attrs)
| C.Constant (id,None,ty,params,attrs) ->
- let ty' = eta_fix [] [] ty in
+ let ty' = eta_fix_and_unshare [] [] ty in
let aty = acic_term_of_cic_term' ~computeinnertypes:false ty' None in
C.AConstant
("mettereaposto",None,id,None,aty,params,attrs)
| C.Variable (id,bo,ty,params,attrs) ->
- let ty' = eta_fix [] [] ty in
+ let ty' = eta_fix_and_unshare [] [] ty in
let abo =
match bo with
None -> None
| Some bo ->
- let bo' = eta_fix [] [] bo in
+ let bo' = eta_fix_and_unshare [] [] bo in
Some (acic_term_of_cic_term' ~computeinnertypes:true bo' (Some ty'))
in
let aty = acic_term_of_cic_term' ~computeinnertypes:false ty' None in
match d with
None -> None
| Some (n, C.Decl t)->
- Some (n, C.Decl (eta_fix conjectures canonical_context' t))
+ Some (n, C.Decl (eta_fix_and_unshare conjectures canonical_context' t))
| Some (n, C.Def (t,None)) ->
Some (n,
- C.Def ((eta_fix conjectures canonical_context' t),None))
+ C.Def ((eta_fix_and_unshare conjectures canonical_context' t),None))
| Some (_,C.Def (_,Some _)) -> assert false
in
d::canonical_context'
) canonical_context []
in
- let term' = eta_fix conjectures canonical_context' term in
+ let term' = eta_fix_and_unshare conjectures canonical_context' term in
(i,canonical_context',term')
) conjectures
in
conjectures' in
(* let bo' = eta_fix conjectures' [] bo in *)
let bo' = bo in
- let ty' = eta_fix conjectures' [] ty in
+ let ty' = eta_fix_and_unshare conjectures' [] ty in
(*
let time2 = Sys.time () in
prerr_endline