X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=components%2Fgrafite_engine%2FgrafiteEngine.ml;h=ab43c6cc18e67c0684562e4ed2a6dffeacb589bf;hb=b65592962c5614981b20154000779805c3620075;hp=ad5423b3e77097bbf9f603d2bcf05bcad15b94af;hpb=81b53ddc3ce92187e62deff483919ca2251fd246;p=helm.git diff --git a/components/grafite_engine/grafiteEngine.ml b/components/grafite_engine/grafiteEngine.ml index ad5423b3e..ab43c6cc1 100644 --- a/components/grafite_engine/grafiteEngine.ml +++ b/components/grafite_engine/grafiteEngine.ml @@ -154,6 +154,13 @@ let tactic_of_ast ast = | GrafiteAst.Split _ -> Tactics.split | GrafiteAst.Symmetry _ -> Tactics.symmetry | GrafiteAst.Transitivity (_, term) -> Tactics.transitivity term + (* Implementazioni Aggiunte *) + | GrafiteAst.Assume (_, id, t) -> Declarative.assume id t + | GrafiteAst.Suppose (_, t, id) -> Declarative.suppose t id + | GrafiteAst.By_term_we_proved (_, t, ty, id) -> + Declarative.by_term_we_proved t ty id + | GrafiteAst.We_need_to_prove (_, t, id) -> Declarative.we_need_to_prove t id + | GrafiteAst.Bydone (_, t) -> Declarative.bydone t (* maybe we only need special cases for apply and goal *) let classify_tactic tactic = @@ -423,8 +430,10 @@ let refinement_toolkit = { let eval_coercion status ~add_composites uri = let status,compounds = GrafiteSync.add_coercion ~add_composites refinement_toolkit status uri in - let moo_content = coercion_moo_statement_of uri in - let status = GrafiteTypes.add_moo_content [moo_content] status in + let moo_content = + List.map coercion_moo_statement_of (uri::compounds) + in + let status = GrafiteTypes.add_moo_content moo_content status in {status with GrafiteTypes.proof_status = GrafiteTypes.No_proof}, compounds @@ -517,7 +526,7 @@ let add_coercions_of_record_to_moo obj lemmas status = let obj,_ = CicEnvironment.get_cooked_obj CicUniv.empty_ugraph uri in let attrs = CicUtil.attributes_of_obj obj in - List.mem (`Class `Projection) attrs + List.mem (`Class `Coercion) attrs with Not_found -> assert false in (* looking at the fields we can know the 'wanted' coercions, but not the @@ -534,8 +543,7 @@ let add_coercions_of_record_to_moo obj lemmas status = | _ -> None) fields in - (* - prerr_endline "wanted coercions:"; + (*prerr_endline "wanted coercions:"; List.iter (fun u -> prerr_endline (UriManager.string_of_uri u)) wanted_coercions; *) @@ -544,17 +552,22 @@ let add_coercions_of_record_to_moo obj lemmas status = (HExtlib.filter_map (fun uri -> let is_a_wanted_coercion = - List.exists (UriManager.eq uri) wanted_coercions in - if is_a_coercion uri && is_a_wanted_coercion then + List.exists (UriManager.eq uri) wanted_coercions + in + if is_a_coercion uri || is_a_wanted_coercion then Some (uri, coercion_moo_statement_of uri) else None) lemmas) in - (* prerr_endline "actual coercions:"; + (*prerr_endline "actual coercions:"; + List.iter + (fun u -> prerr_endline (UriManager.string_of_uri u)) + coercions; + prerr_endline "lemmas was:"; List.iter (fun u -> prerr_endline (UriManager.string_of_uri u)) - coercions; *) + lemmas; *) let status = GrafiteTypes.add_moo_content moo_content status in {status with GrafiteTypes.coercions = coercions @ status.GrafiteTypes.coercions},