X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2Focaml%2Fcic_omdoc%2Fcic2acic.ml;h=bf686ac4e6e1781cf505d6e8330cf86dd3542cf9;hb=4adceafdaa4cd82c427ac9de494179c242e7ad28;hp=ab6342b55892acf917bea708f444123b0e6dc5a7;hpb=9be7ec5bbacfafed8a3e37cfe0095f2aea1b9bf9;p=helm.git diff --git a/helm/ocaml/cic_omdoc/cic2acic.ml b/helm/ocaml/cic_omdoc/cic2acic.ml index ab6342b55..bf686ac4e 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 = @@ -411,30 +414,30 @@ let acic_object_of_cic_object ?(eta_fix=true) 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 + let eta_fix metasenv context t = + if eta_fix then E.eta_fix metasenv context t else t in let aobj = match obj with C.Constant (id,Some bo,ty,params) -> - let bo' = eta_fix [] bo in - let ty' = 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' = 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' = eta_fix [] ty in + let ty' = eta_fix [] [] ty in let abo = match bo with None -> None | Some bo -> - let bo' = 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,16 +448,22 @@ let acic_object_of_cic_object ?(eta_fix=true) obj = List.map (function (i,canonical_context,term) -> let canonical_context' = - List.map - (function - None -> None - | Some (n, C.Decl t)-> Some (n, C.Decl (eta_fix conjectures t)) - | Some (n, C.Def (t,None)) -> - Some (n, C.Def ((eta_fix conjectures t),None)) - | Some (_,C.Def (_,Some _)) -> assert false - ) canonical_context + List.fold_right + (fun d canonical_context' -> + let d' = + match d with + None -> None + | Some (n, C.Decl t)-> + Some (n, C.Decl (eta_fix conjectures canonical_context' t)) + | Some (n, C.Def (t,None)) -> + Some (n, + C.Def ((eta_fix conjectures canonical_context' t),None)) + | Some (_,C.Def (_,Some _)) -> assert false + in + d::canonical_context' + ) [] canonical_context in - let term' = eta_fix conjectures term in + let term' = eta_fix conjectures canonical_context' term in (i,canonical_context',term') ) conjectures in @@ -509,8 +518,8 @@ let acic_object_of_cic_object ?(eta_fix=true) obj = (cid,i,(List.rev revacanonical_context),aterm) ) conjectures' in *) let time1 = Sys.time () in - let bo' = eta_fix conjectures' bo in - let ty' = 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)) ;