CONV_RULE
Conv.CONV_RULE : (conv -> thm -> thm)
Makes an inference rule from a conversion.
If c
is a conversion, then CONV_RULE c
is
an inference rule that applies c
to the conclusion of a
theorem. That is, if c
maps a term "t"
to the
theorem |- t = t'
, then the rule CONV_RULE c
infers |- t'
from the theorem |- t
. More
precisely, if c "t"
returns A' |- t = t'
,
then:
A |- t
-------------- CONV_RULE c
A u A' |- t'
Note that if the conversion c
returns a theorem with
assumptions, then the resulting inference rule adds these to the
assumptions of the theorem it returns.
If c
raises UNCHANGED
then
CONV_RULE c th
returns th
.
CONV_RULE c th
fails if c
fails (other than
by raising UNCHANGED
) when applied to the conclusion of
th
. The function returned by CONV_RULE c
will
also fail if the ML function c:term->thm
is not, in
fact, a conversion (i.e. a function that maps a term t
to a
theorem |- t = t'
).
Abbrev.conv
, Conv.UNCHANGED
, Tactic.CONV_TAC
, Conv.HYP_CONV_RULE
, Conv.RIGHT_CONV_RULE