From 0e93127aaf63e2312c214a0f8fbbc58a6cd129b7 Mon Sep 17 00:00:00 2001 From: Claudio Sacerdoti Coen Date: Wed, 27 Feb 2013 20:18:18 +0000 Subject: [PATCH] Bug fixed: composite coercions were not extracted. --- .../grafite_engine/grafiteEngine.ml | 31 +++++++++---------- 1 file changed, 15 insertions(+), 16 deletions(-) diff --git a/matita/components/grafite_engine/grafiteEngine.ml b/matita/components/grafite_engine/grafiteEngine.ml index 493d409da..54850f112 100644 --- a/matita/components/grafite_engine/grafiteEngine.ml +++ b/matita/components/grafite_engine/grafiteEngine.ml @@ -549,6 +549,14 @@ let compute_relevance status uri = NCic.Inductive (ind,leftno,tys,attrs) ;; +let extract_uris status uris = + List.fold_left + (fun status uri -> + let obj = NCicEnvironment.get_checked_obj status uri in + let status = eval_extract_obj status obj in + eval_extract_ocaml_obj status obj + ) status uris +;; let rec eval_ncommand ~include_paths opts status (text,prefix_len,cmd) = match cmd with @@ -590,17 +598,15 @@ let rec eval_ncommand ~include_paths opts status (text,prefix_len,cmd) = in status, o_t, NotationPt.NCic ty, source, target in - let status, composites = - NCicCoercDeclaration.eval_ncoercion status name compose t ty source - target - in - let mode = GrafiteAst.WithPreferences in (* MATITA 1.0: fixme *) - let aliases = GrafiteDisambiguate.aliases_for_objs status composites in - eval_alias status (mode,aliases) + let cmd = + GrafiteAst.NCoercion (loc, name, compose, Some (t, ty, source, target)) + in + eval_ncommand ~include_paths opts status (text,prefix_len,cmd) | GrafiteAst.NCoercion (loc, name, compose, Some (t, ty, source, target)) -> let status, composites = NCicCoercDeclaration.eval_ncoercion status name compose t ty source target in + let status = extract_uris status composites in let mode = GrafiteAst.WithPreferences in (* MATITA 1.0: fixme *) let aliases = GrafiteDisambiguate.aliases_for_objs status composites in eval_alias status (mode,aliases) @@ -688,7 +694,7 @@ let rec eval_ncommand ~include_paths opts status (text,prefix_len,cmd) = else nstatus with - | MultiPassDisambiguator.DisambiguationError _ as e -> + | MultiPassDisambiguator.DisambiguationError _ -> HLog.warn "error in disambiguating projection/eliminator"; status | NCicTypeChecker.TypeCheckerFailure _ -> @@ -808,14 +814,7 @@ let rec eval_ncommand ~include_paths opts status (text,prefix_len,cmd) = basic_eval_and_record_ncoercion_from_t_cpos_arity status (name,true,t,cpos,arity) in let aliases = GrafiteDisambiguate.aliases_for_objs status nuris in - let status = - List.fold_left - (fun status uri -> - let obj = NCicEnvironment.get_checked_obj status uri in - let status = eval_extract_obj status obj in - eval_extract_ocaml_obj status obj - ) status nuris - in + let status = extract_uris status nuris in eval_alias status (mode,aliases) with MultiPassDisambiguator.DisambiguationError _-> HLog.warn ("error in generating coercion: "^name); -- 2.39.2