X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2Fsoftware%2Fcomponents%2Ftactics%2Fdeclarative.ml;h=0cc52ac1ab523a8cd7464619dde45d143709a8a4;hb=5c10d402b5de7233bc83d7f685b274832e383212;hp=15fdbf7254c02ebecfc1744d3e26479d5207806a;hpb=fd93fa0155994b70482e0f07d8e45c238cce835d;p=helm.git diff --git a/helm/software/components/tactics/declarative.ml b/helm/software/components/tactics/declarative.ml index 15fdbf725..0cc52ac1a 100644 --- a/helm/software/components/tactics/declarative.ml +++ b/helm/software/components/tactics/declarative.ml @@ -25,9 +25,11 @@ type just = [ `Term of Cic.term | `Auto of Auto.auto_params ] -let mk_just ~dbd ~universe = +let mk_just ~dbd ~automation_cache = function - `Auto params -> Tactics.auto ~dbd ~params ~universe + `Auto (l,params) -> + Tactics.auto ~dbd + ~params:(l,("skip_trie_filtering","1")::("skip_context","1")::params) ~automation_cache | `Term t -> Tactics.apply t ;; @@ -53,8 +55,8 @@ let suppose t id ty = (fun _ metasenv ugraph -> ty,metasenv,ugraph)) ;; -let by_just_we_proved ~dbd ~universe just ty id ty' = - let just = mk_just ~dbd ~universe just in +let by_just_we_proved ~dbd ~automation_cache just ty id ty' = + let just = mk_just ~dbd ~automation_cache just in match id with None -> (match ty' with @@ -87,8 +89,8 @@ let by_just_we_proved ~dbd ~universe just ty id ty' = ~continuations:[ Tacticals.id_tac ; continuation ] ;; -let bydone ~dbd ~universe just = - mk_just ~dbd ~universe just +let bydone ~dbd ~automation_cache just = + mk_just ~dbd ~automation_cache just ;; let we_need_to_prove t id ty = @@ -126,7 +128,7 @@ let we_need_to_prove t id ty = ProofEngineTypes.mk_tactic aux ;; -let existselim ~dbd ~universe just id1 t1 id2 t2 = +let existselim ~dbd ~automation_cache just id1 t1 id2 t2 = let aux (proof, goal) = let (n,metasenv,_subst,bo,ty,attrs) = proof in let metano,context,_ = CicUtil.lookup_meta goal metasenv in @@ -142,13 +144,13 @@ let existselim ~dbd ~universe just id1 t1 id2 t2 = fun _ _ _ ~typ -> incr i; if !i = 1 then Cic.Name id1 else Cic.Name id2) ; - (mk_just ~dbd ~universe just) + (mk_just ~dbd ~automation_cache just) ]) (proof', goal) in ProofEngineTypes.mk_tactic aux ;; -let andelim ~dbd ~universe just id1 t1 id2 t2 = +let andelim ~dbd ~automation_cache just id1 t1 id2 t2 = Tacticals.thens ~start:(Tactics.cut (Cic.Appl [Cic.MutInd (UriManager.uri_of_string "cic:/matita/logic/connectives/And.ind", 0, []); t1 ; t2])) ~continuations: @@ -158,10 +160,10 @@ let andelim ~dbd ~universe just id1 t1 id2 t2 = fun _ _ _ ~typ -> incr i; if !i = 1 then Cic.Name id1 else Cic.Name id2) ; - (mk_just ~dbd ~universe just) ] + (mk_just ~dbd ~automation_cache just) ] ;; -let rewritingstep ~dbd ~universe lhs rhs just last_step = +let rewritingstep ~dbd ~automation_cache lhs rhs just last_step = let aux ((proof,goal) as status) = let (curi,metasenv,_subst,proofbo,proofty, attrs) = proof in let _,context,gty = CicUtil.lookup_meta goal metasenv in @@ -187,14 +189,15 @@ let rewritingstep ~dbd ~universe lhs rhs just last_step = else params in if params = params' then - Tactics.auto ~dbd ~params:(univ, params) ~universe + Tactics.auto ~dbd ~params:(univ, params) ~automation_cache else Tacticals.first - [Tactics.auto ~dbd ~params:(univ, params) ~universe ; - Tactics.auto ~dbd ~params:(univ, params') ~universe] + [Tactics.auto ~dbd ~params:(univ, params) ~automation_cache ; + Tactics.auto ~dbd ~params:(univ, params') ~automation_cache] | `Term just -> Tactics.apply just | `SolveWith term -> - Tactics.solve_rewrite ~universe ~params:([term],["steps","1"]) () + Tactics.solve_rewrite ~automation_cache + ~params:([term],["steps","1"; "use_context","false"]) () | `Proof -> Tacticals.id_tac in