The following example illustrates a straightforward use of
COND_REWRITE1_CONV. We use the built-in theorem LESS_MOD as the
input theorem.
#LESS_MOD;;
Theorem LESS_MOD autoloading from theory `arithmetic` ...
LESS_MOD = |- !n k. k < n ==> (k MOD n = k)
|- !n k. k < n ==> (k MOD n = k)
#COND_REWRITE1_CONV [] LESS_MOD "2 MOD 3";;
2 < 3 |- 2 MOD 3 = 2
#let less_2_3 = REWRITE_RULE[LESS_MONO_EQ;LESS_0]
#(REDEPTH_CONV num_CONV "2 < 3");;
less_2_3 = |- 2 < 3
#COND_REWRITE1_CONV [less_2_3] LESS_MOD "2 MOD 3";;
|- 2 MOD 3 = 2
In the first example, an empty theorem list is supplied to
COND_REWRITE1_CONV so the resulting theorem has an assumption
2 < 3. In the second example, a list containing a theorem |- 2 < 3
is supplied, the resulting theorem has no assumptions.