ProofEngineTypes.apply_tactic
(P.change_tac
~what:new_t1'
+ ~pattern:([],None)
~with_what:
(C.Appl [
C.Lambda (
~start:
(P.change_tac
~what:gty'
+ ~pattern:([],None)
~with_what:
(C.Appl [
C.Lambda (
let curi,metasenv,pbo,pty = proof in
let metano,context,ty = CicUtil.lookup_meta goal metasenv in
apply_tactic
- (PrimitiveTactics.change_tac ~what:ty
+ (PrimitiveTactics.change_tac ~what:ty ~pattern:([],None)
~with_what:(Cic.Appl [ _not; ineq]))
status))
~continuation:(Tacticals.then_
|_ -> assert false)
in
let r = apply_tactic
- (PrimitiveTactics.change_tac ~what:ty ~with_what:w1)
- status in
+ (PrimitiveTactics.change_tac ~what:ty ~pattern:([],None)
+ ~with_what:w1) status in
debug("fine MY_CHNGE\n");
r))
~continuation:(*PORTINGTacticals.id_tac*)tac2]))
(*CSC: while [what] can have a richer context (because of binders) *)
(*CSC: So it is _NOT_ possible to use those binders in the [with_what] term. *)
(*CSC: Is that evident? Is that right? Or should it be changed? *)
-let change_tac ~what ~with_what =
- let change_tac ~what ~with_what (proof, goal) =
+let change_tac ~what ~with_what ~pattern =
+(*
+ let change_tac ~what ~with_what ~pattern (proof, goal) =
let curi,metasenv,pbo,pty = proof in
let metano,context,ty = CicUtil.lookup_meta goal metasenv in
(* are_convertible works only on well-typed terms *)
else
raise (ProofEngineTypes.Fail "Not convertible")
in
- mk_tactic (change_tac ~what ~with_what)
-
+ mk_tactic (change_tac ~what ~with_what ~pattern)
+*) assert false
term: Cic.term -> ProofEngineTypes.tactic
val change_tac:
- what: Cic.term -> with_what: Cic.term -> ProofEngineTypes.tactic
+ what: Cic.term -> with_what: Cic.term -> pattern:ProofEngineTypes.pattern ->
+ ProofEngineTypes.tactic
val auto :
?depth:int ->
?width:int -> dbd:Mysql.dbd -> unit -> ProofEngineTypes.tactic
-val change : what:Cic.term -> with_what:Cic.term -> ProofEngineTypes.tactic
+val change :
+ what:Cic.term ->
+ with_what:Cic.term ->
+ pattern:ProofEngineTypes.pattern -> ProofEngineTypes.tactic
val clear : hyp:string -> ProofEngineTypes.tactic
val clearbody : hyp:string -> ProofEngineTypes.tactic
val compare : term:Cic.term -> ProofEngineTypes.tactic