type just = [ `Term of Cic.term | `Auto of Auto.auto_params ]
-let mk_just ~dbd ~universe =
+let mk_just ~dbd ~automation_cache =
function
`Auto (l,params) ->
Tactics.auto ~dbd
- ~params:(l,("skip_trie_filtering","1")::("skip_context","1")::params) ~universe
+ ~params:(l,("skip_trie_filtering","1")::(*("skip_context","1")::*)params) ~automation_cache
| `Term t -> Tactics.apply t
;;
(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
~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 =
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
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:
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
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.demodulate ~automation_cache ~dbd
+ ~params:(Some [term],
+ ["all","1";"steps","1"; "use_context","false"])
| `Proof ->
Tacticals.id_tac
in
;;
let we_proceed_by_induction_on t pat =
- let pattern = None, [], Some pat in
+(* let pattern = None, [], Some pat in *)
Tactics.elim_intros ~depth:0 (*~pattern*) t
;;