X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2Fsoftware%2Fcomponents%2Fgrafite_engine%2FnCicCoercDeclaration.ml;h=7fcd6a473f4595f70047f2bda5fce0b6867b68bf;hb=bc389dd4724959688aafc1ede450794f47b8d0b5;hp=fa6b163ad97371a71ff238ff118e63227cec944e;hpb=8b299ba276e095f0fa929a4818d00d253be4c591;p=helm.git diff --git a/helm/software/components/grafite_engine/nCicCoercDeclaration.ml b/helm/software/components/grafite_engine/nCicCoercDeclaration.ml index fa6b163ad..7fcd6a473 100644 --- a/helm/software/components/grafite_engine/nCicCoercDeclaration.ml +++ b/helm/software/components/grafite_engine/nCicCoercDeclaration.ml @@ -9,7 +9,7 @@ \ / This software is distributed as is, NO WARRANTY. V_______________________________________________________________ *) -let debug s = prerr_endline (Lazy.force s) ;; +(* let debug s = prerr_endline (Lazy.force s) ;;*) let debug _ = ();; let skel_dummy = NCic.Implicit `Type;; @@ -127,7 +127,7 @@ let only_head = function let src_tgt_cpos_arity_of_ty_id_src_tgt status ty id src tgt = let status, src, cpos = let rec aux cpos ctx = function - | NCic.Prod (name,ty,bo) -> + | NCic.Prod (name,ty,bo) -> if name <> id then aux (cpos+1) ((name,NCic.Decl ty)::ctx) bo else (try @@ -177,6 +177,7 @@ let fresh_uri status prefix suffix = diverge (mk "") 0 ;; +exception Stop;; let close_graph name t s d to_s from_d p a status = let c = @@ -195,13 +196,13 @@ let close_graph name t s d to_s from_d p a status = let c_o_from_d = product (fun (n,mc,c,_,j) (n1,m1,t1,ty,i) -> - compose_names n1 n,m1@mc,t1,[i,c],j,count_prod ty) + compose_names n n1,m1@mc,t1,[i,c],j,count_prod ty) [c] from_d in let to_s_o_c_o_from_d = product (fun (n1,m1,t1,_,j) (n,m,t,upl,i,a)-> - compose_names n n1,m@m1,t,(i,t1)::upl,j,a) + compose_names n1 n,m@m1,t,(i,t1)::upl,j,a) to_s c_o_from_d in to_s_o_c @ c_o_from_d @ to_s_o_c_o_from_d @@ -224,14 +225,14 @@ let close_graph name t s d to_s from_d p a status = let pos = match p with | NCic.Meta (p,_) -> pos_in_list p (List.map fst metasenv) - | t -> assert false + | t -> raise Stop in let ty = NCicTypeChecker.typeof ~metasenv:[] ~subst:[] [] bo in let src,tgt = src_tgt_of_ty_cpos_arity ty pos arity in let src = only_head src in let tgt = only_head tgt in debug (lazy( - "composite: "^ + "composite " ^ name ^ ": "^ NCicPp.ppterm ~metasenv:[] ~subst:[] ~context:[] bo ^ " : " ^ NCicPp.ppterm ~metasenv:[] ~subst:[] ~context:[] ty ^ " as " ^ NCicPp.ppterm ~metasenv:[] ~subst:[] ~context:[] src ^ " ===> " ^ @@ -251,7 +252,7 @@ let close_graph name t s d to_s from_d p a status = with | NCicTypeChecker.TypeCheckerFailure _ | NCicUnification.UnificationFailure _ - | NCicUnification.Uncertain _ -> None + | NCicUnification.Uncertain _ | Stop -> None ) composites in composites