X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2Focaml%2Fcic_unification%2FfreshNamesGenerator.ml;h=1a94c318599e2678e0898618d1fe40c254653d4b;hb=ebc089606ccbb3e9dbde142542a1f98f5020b4dd;hp=3664b4a72473008ec526a83049df98ae0922b340;hpb=d8a1a68b8b7e53ba43fcad55e928a99ef5e08b8e;p=helm.git diff --git a/helm/ocaml/cic_unification/freshNamesGenerator.ml b/helm/ocaml/cic_unification/freshNamesGenerator.ml index 3664b4a72..1a94c3185 100644 --- a/helm/ocaml/cic_unification/freshNamesGenerator.ml +++ b/helm/ocaml/cic_unification/freshNamesGenerator.ml @@ -69,7 +69,7 @@ let clean_dummy_dependent_types t = let module C = Cic in let rec aux k = function - C.Rel m as t -> t,[m - k] + C.Rel m as t -> t,[k - m] | C.Var (uri,exp_named_subst) -> let exp_named_subst',rels = List.fold_right @@ -95,7 +95,7 @@ let clean_dummy_dependent_types t = in C.Meta(i,l'),rels | C.Sort _ as t -> t,[] - | C.Implicit as t -> t,[] + | C.Implicit _ as t -> t,[] | C.Cast (te,ty) -> let te',rels1 = aux k te in let ty',rels2 = aux k ty in @@ -106,7 +106,13 @@ let clean_dummy_dependent_types t = let n' = match n with C.Anonymous -> - if List.mem k rels2 then assert false else C.Anonymous + if List.mem k rels2 then +( + prerr_endline "If this happens often, we can do something about it (i.e. we can generate a new fresh name; problem: we need the metasenv and context ;-(. Alternative solution: mk_implicit does not generate entries for the elements in the context that have no name" ; + C.Anonymous +) + else + C.Anonymous | C.Name _ as n -> if List.mem k rels2 then n else C.Anonymous in