PART_MATCH'
Drule.PART_MATCH' : (term -> term) -> thm -> term -> thm
Version of PART_MATCH
that only specialises necessary
variables in input
PART_MATCH' selfn th tm
behaves similarly to
PART_MATCH selfn th tm
, except that outermost, universally
quantified variables in th
are retained in the result
unless they are part of the matching.
Fails when PART_MATCH
would fail.
> IMP_DISJ_THM;
val it = ⊢ ∀A B. A ⇒ B ⇔ ¬A ∨ B: thm
> PART_MATCH (rand o lhs) IMP_DISJ_THM “p /\ A”;
val it = ⊢ A ⇒ p ∧ A ⇔ ¬A ∨ p ∧ A: thm
> PART_MATCH' (rand o lhs) IMP_DISJ_THM “p /\ A”;
val it = ⊢ ∀A'. A' ⇒ p ∧ A ⇔ ¬A' ∨ p ∧ A: thm