VALIDATE : tactic -> tactic
If g' differs from g, both VALID tac (asl,g) and VALIDATE tac (asl,g) fail.
Also fails if tac fails when applied to the given goal.
1 subgoal: val it = q ------------------------------------ p : proof > e (ACCEPT_TAC uth') ; OK.. Exception raised at Tactical.VALID: Invalid tactic [...] > e (VALIDATE (ACCEPT_TAC uth')) ; OK.. 1 subgoal: val it = p' ------------------------------------ p : proof
Given a goal with an implication in the assumptions, one can split it into two subgoals.
1 subgoal: val it = r ------------------------------------ p ==> q : proof > e (VALIDATE (POP_ASSUM (ASSUME_TAC o UNDISCH))) ; OK.. 2 subgoals: val it = r ------------------------------------ q p ------------------------------------ p ==> q 2 subgoals : proof