X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2Focaml%2Fcic_omdoc%2Fcic2acic.ml;h=f45a92c1ab81c355c86128a99fc7d58737d0c3a3;hb=c517601da65ba49769c401105d36c293a2c92a71;hp=8418a64d42506796fc8afb5d245e12415c7c7869;hpb=e626927b4c1c77bdcd6b545203a0a9c17a9ff136;p=helm.git diff --git a/helm/ocaml/cic_omdoc/cic2acic.ml b/helm/ocaml/cic_omdoc/cic2acic.ml index 8418a64d4..f45a92c1a 100644 --- a/helm/ocaml/cic_omdoc/cic2acic.ml +++ b/helm/ocaml/cic_omdoc/cic2acic.ml @@ -109,7 +109,10 @@ let acic_of_cic_context' seed ids_to_terms ids_to_father_ids ids_to_inner_sorts C.Sort C.Prop -> "Prop" | C.Sort C.Set -> "Set" | C.Sort C.Type -> "Type" - | C.Sort C.CProp -> "CProp" + | C.Sort C.CProp -> "CProp" + | C.Meta _ -> +prerr_endline "Cic2acic: string_of_sort applied to a meta" ; + "?" | _ -> assert false in let ainnertypes,innertype,innersort,expected_available = @@ -392,7 +395,7 @@ let asequent_of_sequent (metasenv:Cic.metasenv) (sequent:Cic.conjecture) = ids_to_terms,ids_to_father_ids,ids_to_inner_sorts,ids_to_hypotheses ;; -let acic_object_of_cic_object obj = +let acic_object_of_cic_object ?(eta_fix=true) obj = let module C = Cic in let module E = Eta_fixing in let ids_to_terms = Hashtbl.create 503 in @@ -411,27 +414,30 @@ let acic_object_of_cic_object obj = 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 context t = + if eta_fix then E.eta_fix context t else t + in let aobj = match obj with C.Constant (id,Some bo,ty,params) -> - let bo' = E.eta_fix [] bo in - let ty' = E.eta_fix [] ty in + let bo' = eta_fix [] bo in + let ty' = eta_fix [] ty in let abo = acic_term_of_cic_term' bo' (Some ty') in let aty = acic_term_of_cic_term' ty' None in C.AConstant ("mettereaposto",Some "mettereaposto2",id,Some abo,aty,params) | C.Constant (id,None,ty,params) -> - let ty' = E.eta_fix [] ty in + let ty' = eta_fix [] ty in let aty = acic_term_of_cic_term' ty' None in C.AConstant ("mettereaposto",None,id,None,aty,params) | C.Variable (id,bo,ty,params) -> - let ty' = E.eta_fix [] ty in + let ty' = eta_fix [] ty in let abo = match bo with None -> None | Some bo -> - let bo' = E.eta_fix [] bo in + let bo' = eta_fix [] bo in Some (acic_term_of_cic_term' bo' (Some ty')) in let aty = acic_term_of_cic_term' ty' None in @@ -445,13 +451,13 @@ let acic_object_of_cic_object obj = List.map (function None -> None - | Some (n, C.Decl t)-> Some (n, C.Decl (E.eta_fix conjectures t)) + | Some (n, C.Decl t)-> Some (n, C.Decl (eta_fix conjectures t)) | Some (n, C.Def (t,None)) -> - Some (n, C.Def ((E.eta_fix conjectures t),None)) + Some (n, C.Def ((eta_fix conjectures t),None)) | Some (_,C.Def (_,Some _)) -> assert false ) canonical_context in - let term' = E.eta_fix conjectures term in + let term' = eta_fix conjectures term in (i,canonical_context',term') ) conjectures in @@ -506,8 +512,8 @@ let acic_object_of_cic_object obj = (cid,i,(List.rev revacanonical_context),aterm) ) conjectures' in *) let time1 = Sys.time () in - let bo' = E.eta_fix conjectures' bo in - let ty' = E.eta_fix conjectures' ty in + let bo' = eta_fix conjectures' bo in + let ty' = eta_fix conjectures' ty in let time2 = Sys.time () in prerr_endline ("++++++++++ Tempi della eta_fix: "^ string_of_float (time2 -. time1)) ;