SUC_TO_NUMERAL_DEFN_CONV : conv
This procedure uses the following theorem:
|- !f g. (!n. f (SUC n) = g n (SUC n)) = (!n. f (NUMERAL (NUMERAL_BIT1 n)) = g (NUMERAL (NUMERAL_BIT1 n)) (NUMERAL (NUMERAL_BIT1 n) - 1)) /\ (!n. f (NUMERAL (NUMERAL_BIT2 n)) = g (NUMERAL (NUMERAL_BIT2 n)) (NUMERAL (NUMERAL_BIT1 n)))
- CONV_RULE SUC_TO_NUMERAL_DEFN_CONV arithmeticTheory.FACT; > val it = |- (FACT 0 = 1) /\ (!n. FACT (NUMERAL (NUMERAL_BIT1 n)) = NUMERAL (NUMERAL_BIT1 n) * FACT (NUMERAL (NUMERAL_BIT1 n) - 1)) /\ !n. FACT (NUMERAL (NUMERAL_BIT2 n)) = NUMERAL (NUMERAL_BIT2 n) * FACT (NUMERAL (NUMERAL_BIT1 n)) : thm