X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2Fsoftware%2Fcomponents%2Flexicon%2FlexiconSync.ml;h=c82caf3371eecbeccbe7605bb4a08b6a4541c313;hb=2bcf927f58bac034b8758173cdbd16cb7475de36;hp=f99535d19da9e5b7430eab6c043a7a015d8aed1a;hpb=7233348f05485c2ee317df9c3407cf1ce7e56927;p=helm.git diff --git a/helm/software/components/lexicon/lexiconSync.ml b/helm/software/components/lexicon/lexiconSync.ml index f99535d19..c82caf337 100644 --- a/helm/software/components/lexicon/lexiconSync.ml +++ b/helm/software/components/lexicon/lexiconSync.ml @@ -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