]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/software/components/ng_kernel/nCicLibrary.ml
- alpha conversion check added to the brg kernel (succeeds 1/4 of the times)
[helm.git] / helm / software / components / ng_kernel / nCicLibrary.ml
index 6d1797677a6f23b8c587afe71709990f9e4189b1..c75de5265b603d67808c7ff55582960f792779c0 100644 (file)
@@ -23,6 +23,9 @@ let refresh_uri_in_universe =
 
 let rec refresh_uri_in_term =
  function
+  | NCic.Meta (i,(n,NCic.Ctx l)) ->
+     NCic.Meta (i,(n,NCic.Ctx (List.map refresh_uri_in_term l)))
+  | NCic.Meta _ as t -> t
   | NCic.Const (NReference.Ref (u,spec)) ->
      NCic.Const (NReference.reference_of_spec (refresh_uri u) spec)
   | NCic.Sort (NCic.Type l) -> NCic.Sort (NCic.Type (refresh_uri_in_universe l))
@@ -200,12 +203,13 @@ module Serializer(S: sig type status end) =
   let register tag require =
    assert (not (List.mem tag !already_registered));
    already_registered := tag :: !already_registered;
+   let old_require1 = !require1 in
    require1 :=
-    (fun (tag',data) as x ->
-     if tag=tag' then
-      require (Obj.magic data) ~refresh_uri_in_universe ~refresh_uri_in_term 
-     else
-      !require1 x);
+     (fun (tag',data) as x ->
+      if tag=tag' then
+       require (Obj.magic data) ~refresh_uri_in_universe ~refresh_uri_in_term 
+      else
+       old_require1 x);
    (fun x -> tag,Obj.repr x)
 
   let serialize = serialize