X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2Focaml%2Fcic_omdoc%2Fcic2acic.ml;h=cf9760c2565dd4ae86c6ae445a1c62ee0ae88c6f;hb=3c9c376401844c389d682ba835845443105e4b1a;hp=f86e22f842d7ee23392357d639e4284f384c0ae3;hpb=7ec7262cfa317c1962164350361f82a56c5d1826;p=helm.git diff --git a/helm/ocaml/cic_omdoc/cic2acic.ml b/helm/ocaml/cic_omdoc/cic2acic.ml index f86e22f84..cf9760c25 100644 --- a/helm/ocaml/cic_omdoc/cic2acic.ml +++ b/helm/ocaml/cic_omdoc/cic2acic.ml @@ -37,7 +37,7 @@ let type_of_aux'_add_time = ref 0.0;; let xxx_type_of_aux' m c t = let t1 = Sys.time () in - let res = CicTypeChecker.type_of_aux' m c t in + let res,_ = CicTypeChecker.type_of_aux' m c t CicUniv.empty_ugraph in let t2 = Sys.time () in type_of_aux'_add_time := !type_of_aux'_add_time +. t2 -. t1 ; res @@ -81,9 +81,10 @@ let acic_of_cic_context' seed ids_to_terms ids_to_father_ids ids_to_inner_sorts let module D = DoubleTypeInference in let module C = Cic in let fresh_id' = fresh_id seed ids_to_terms ids_to_father_ids in - let time1 = Sys.time () in +(* let time1 = Sys.time () in *) let terms_to_types = let time0 = Sys.time () in +(* let prova = CicTypeChecker.type_of_aux' metasenv context t in let time1 = Sys.time () in prerr_endline ("*** Fine type_inference:" ^ (string_of_float (time1 -. time0))); @@ -91,10 +92,14 @@ let acic_of_cic_context' seed ids_to_terms ids_to_father_ids ids_to_inner_sorts let time2 = Sys.time () in prerr_endline ("*** Fine double_type_inference:" ^ (string_of_float (time2 -. time1))); res +*) + D.double_type_of metasenv context t expectedty in +(* let time2 = Sys.time () in prerr_endline ("++++++++++++ Tempi della double_type_of: "^ string_of_float (time2 -. time1)) ; +*) let rec aux computeinnertypes father context idrefs tt = let fresh_id'' = fresh_id' father tt in (*CSC: computeinnertypes era true, il che e' proprio sbagliato, no? *) @@ -329,12 +334,15 @@ Cic.Sort (Cic.Type (CicUniv.fresh())); (* TASSI: non dovrebbe fare danni *) ) fresh_idrefs funs ) in +(* let timea = Sys.time () in let res = aux true None context idrefs t in let timeb = Sys.time () in prerr_endline ("+++++++++++++ Tempi della aux dentro alla acic_of_cic: "^ string_of_float (timeb -. timea)) ; res +*) + aux true None context idrefs t ;; let acic_of_cic_context metasenv context idrefs t = @@ -420,19 +428,19 @@ let acic_object_of_cic_object ?(eta_fix=true) obj = in let aobj = match obj with - C.Constant (id,Some bo,ty,params) -> + C.Constant (id,Some bo,ty,params,attrs) -> 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) -> + ("mettereaposto",Some "mettereaposto2",id,Some abo,aty,params,attrs) + | C.Constant (id,None,ty,params,attrs) -> 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) -> + ("mettereaposto",None,id,None,aty,params,attrs) + | C.Variable (id,bo,ty,params,attrs) -> let ty' = eta_fix [] [] ty in let abo = match bo with @@ -443,8 +451,8 @@ let acic_object_of_cic_object ?(eta_fix=true) obj = in let aty = acic_term_of_cic_term' ty' None in C.AVariable - ("mettereaposto",id,abo,aty, params) - | C.CurrentProof (id,conjectures,bo,ty,params) -> + ("mettereaposto",id,abo,aty,params,attrs) + | C.CurrentProof (id,conjectures,bo,ty,params,attrs) -> let conjectures' = List.map (function (i,canonical_context,term) -> @@ -518,18 +526,21 @@ let acic_object_of_cic_object ?(eta_fix=true) obj = in (cid,i,(List.rev revacanonical_context),aterm) ) conjectures' in *) - let time1 = Sys.time () in +(* let time1 = Sys.time () 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)) ; hashtbl_add_time := 0.0 ; type_of_aux'_add_time := 0.0 ; DoubleTypeInference.syntactic_equality_add_time := 0.0 ; +*) let abo = acic_term_of_cic_term_context' conjectures' [] [] bo' (Some ty') in let aty = acic_term_of_cic_term_context' conjectures' [] [] ty' None in +(* let time3 = Sys.time () in prerr_endline ("++++++++++++ Tempi della hashtbl_add_time: " ^ string_of_float !hashtbl_add_time) ; @@ -543,9 +554,10 @@ let acic_object_of_cic_object ?(eta_fix=true) obj = ("++++++++++ Tempi della acic_of_cic: " ^ string_of_float (time3 -. time2)) ; prerr_endline ("++++++++++ Numero di iterazioni della acic_of_cic: " ^ string_of_int !seed) ; +*) C.ACurrentProof - ("mettereaposto","mettereaposto2",id,aconjectures,abo,aty,params) - | C.InductiveDefinition (tys,params,paramsno) -> + ("mettereaposto","mettereaposto2",id,aconjectures,abo,aty,params,attrs) + | C.InductiveDefinition (tys,params,paramsno,attrs) -> let context = List.map (fun (name,_,arity,_) -> Some (C.Name name, C.Decl arity)) tys in @@ -563,7 +575,7 @@ let acic_object_of_cic_object ?(eta_fix=true) obj = (id,name,inductive,acic_term_of_cic_term' ty None,acons) ) (List.rev idrefs) tys in - C.AInductiveDefinition ("mettereaposto",atys,params,paramsno) + C.AInductiveDefinition ("mettereaposto",atys,params,paramsno,attrs) in aobj,ids_to_terms,ids_to_father_ids,ids_to_inner_sorts,ids_to_inner_types, ids_to_conjectures,ids_to_hypotheses