PSTRIP_THM_THENPairRules.PSTRIP_THM_THEN : thm_tactical
PSTRIP_THM_THEN applies the given theorem-tactic using
the result of stripping off one outer connective from the given
theorem.
Given a theorem-tactic ttac, a theorem th
whose conclusion is a conjunction, a disjunction or a paired
existentially quantified term, and a goal (A,t),
STRIP_THM_THEN ttac th first strips apart the conclusion of
th, next applies ttac to the theorem(s)
resulting from the stripping and then applies the resulting tactic to
the goal.
In particular, when stripping a conjunctive theorem
A'|- u /\ v, the tactic
ttac(u|-u) THEN ttac(v|-v)
resulting from applying ttac to the conjuncts, is
applied to the goal. When stripping a disjunctive theorem
A'|- u \/ v, the tactics resulting from applying
ttac to the disjuncts, are applied to split the goal into
two cases. That is, if
A ?- t A ?- t
========= ttac (u|-u) and ========= ttac (v|-v)
A ?- t1 A ?- t2
then:
A ?- t
================== PSTRIP_THM_THEN ttac (A'|- u \/ v)
A ?- t1 A ?- t2
When stripping a paired existentially quantified theorem
A'|- ?p. u, the tactic resulting from applying
ttac to the body of the paired existential quantification,
ttac(u|-u), is applied to the goal. That is, if:
A ?- t
========= ttac (u|-u)
A ?- t1
then:
A ?- t
============= PSTRIP_THM_THEN ttac (A'|- ?p. u)
A ?- t1
The assumptions of the theorem being split are not added to the
assumptions of the goal(s) but are recorded in the proof. If
A' is not a subset of the assumptions A of the
goal (up to alpha-conversion), PSTRIP_THM_THEN ttac th
results in an invalid tactic.
PSTRIP_THM_THEN ttac th fails if the conclusion of
th is not a conjunction, a disjunction or a paired
existentially quantification. Failure also occurs if the application of
ttac fails, after stripping the outer connective from the
conclusion of th.
PSTRIP_THM_THEN is used enrich the assumptions of a goal
with a stripped version of a previously-proved theorem.
Thm_cont.STRIP_THM_THEN,
PairRules.PSTRIP_ASSUME_TAC,
PairRules.PSTRIP_GOAL_THEN,
PairRules.PSTRIP_TAC