IRULE_CANONDrule.IRULE_CANON : thm -> thm
Canonicalises a theorem for use as an introduction rule.
A call to IRULE_CANON th returns a theorem
th' that is equivalent to th, but
syntactically rearranged to be in the form
!v1 .. vn. c1 /\ c2 ... /\ cm ==> c
(also allowing for no conjuncts at all). The variables
v1 to vn all occur in the conclusion
c, which is not universally quantified, nor an
implication.
Each of the conjuncts is of the form
?ev1 .. evi. ec1 /\ .. ecj
where it is possible that there are not existentially quantified
variables. The existential quantification ensures that there are no free
variables in the output theorem th'.
Never fails.
This function is used within the implementation of
irule. The output theorem th' is appropriate
for use as an argument to MATCH_MP_TAC (if the output is a
quantified implication), or MATCH_ACCEPT_TAC if the output
is not an implication.