]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/software/components/lexicon/lexiconSync.ml
made executable again
[helm.git] / helm / software / components / lexicon / lexiconSync.ml
index f99535d19da9e5b7430eab6c043a7a015d8aed1a..c82caf3371eecbeccbe7605bb4a08b6a4541c313 100644 (file)
@@ -33,7 +33,7 @@ let alias_diff ~from status =
       try
        let description2 = 
           LexiconAst.description_of_alias 
-            (Map.find domain_item from.LexiconEngine.aliases)
+            (Map.find domain_item from#lstatus.LexiconEngine.aliases)
        in
         if description1 <> description2 then
          (domain_item,codomain_item)::acc
@@ -42,13 +42,9 @@ let alias_diff ~from status =
       with
        Not_found ->
          (domain_item,codomain_item)::acc)
-    status.LexiconEngine.aliases []
+    status#lstatus.LexiconEngine.aliases []
 ;;
 
-let alias_diff =
- let profiler = HExtlib.profile "alias_diff(conteg. anche in include)" in
- fun ~from status -> profiler.HExtlib.profile (alias_diff ~from) status
-
 (** given a uri and a type list (the contructors types) builds a list of pairs
  *  (name,uri) that is used to generate automatic aliases **)
 let extract_alias types uri = 
@@ -92,7 +88,20 @@ let add_aliases_for_objs status =
        (fun status uri ->
          let obj,_ = CicEnvironment.get_obj CicUniv.oblivion_ugraph uri in
           add_aliases_for_object status uri obj) status uris
-  | `New nrefs -> assert false
+  | `New nrefs ->
+     List.fold_left
+      (fun status nref ->
+        let references = NCicLibrary.aliases_of nref in
+        let new_env =
+         List.map
+          (fun u ->
+            let name = NCicPp.r2s true u in
+             DisambiguateTypes.Id name,
+              LexiconAst.Ident_alias (name,NReference.string_of_reference u)
+          ) references
+        in
+         LexiconEngine.set_proof_aliases status new_env
+      ) status nrefs
  
 module OrderedId = 
 struct
@@ -112,8 +121,8 @@ let id_list_diff l2 l1 =
 
 let time_travel ~present ~past =
   let notation_to_remove =
-    id_list_diff present.LexiconEngine.notation_ids
-     past.LexiconEngine.notation_ids
+    id_list_diff present#lstatus.LexiconEngine.notation_ids
+     past#lstatus.LexiconEngine.notation_ids
   in
    List.iter CicNotation.remove_notation notation_to_remove