X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2Fsoftware%2Fcomponents%2Flexicon%2FlexiconEngine.ml;h=8a51e9523055fe51326a5be45372ba53fdbb6495;hb=a677e0d09755766c61ce9b30a98bec10cb8902b3;hp=aadb3ddf2ad02949f3a9769900a2dddce59ae198;hpb=423bf7f85d0959689266cfc7ca57958a04618002;p=helm.git diff --git a/helm/software/components/lexicon/lexiconEngine.ml b/helm/software/components/lexicon/lexiconEngine.ml index aadb3ddf2..8a51e9523 100644 --- a/helm/software/components/lexicon/lexiconEngine.ml +++ b/helm/software/components/lexicon/lexiconEngine.ml @@ -51,7 +51,12 @@ let add_lexicon_content cmds status = let content = status.lexicon_content_rev in let content' = List.fold_right - (fun cmd acc -> cmd :: (List.filter ((<>) cmd) acc)) + (fun cmd acc -> + match cmd with + | LexiconAst.Alias _ + | LexiconAst.Include _ + | LexiconAst.Notation _ -> cmd :: (List.filter ((<>) cmd) acc) + | LexiconAst.Interpretation _ -> if List.exists ((=) cmd) acc then acc else cmd::acc) cmds content in (* prerr_endline ("new lexicon content: " ^ String.concat " " (List.map @@ -156,12 +161,18 @@ let rec eval_command ?(mode=LexiconAst.WithPreferences) status cmd = | LexiconAst.Interpretation (_, dsc, (symbol, _), _) as stm -> let status = add_lexicon_content [stm] status in let diff = - [DisambiguateTypes.Symbol (symbol, 0), - DisambiguateChoices.lookup_symbol_by_dsc symbol dsc] + try + [DisambiguateTypes.Symbol (symbol, 0), + DisambiguateChoices.lookup_symbol_by_dsc symbol dsc] + with + DisambiguateChoices.Choice_not_found msg -> + prerr_endline (Lazy.force msg); + assert false in let status = set_proof_aliases mode status diff in status - | LexiconAst.Notation _ as stm -> add_lexicon_content [stm] status + | LexiconAst.Notation _ as stm -> + add_lexicon_content [stm] status let eval_command = eval_command ?mode:None