8264
|
1 |
(* Title: HOL/Numeral.ML
|
|
2 |
ID: $Id$
|
|
3 |
Author: Tobias Nipkow
|
|
4 |
*)
|
|
5 |
|
|
6 |
(*Unfold all "let"s involving constants*)
|
|
7 |
Goalw [Let_def] "Let (number_of v) f == f (number_of v)";
|
|
8 |
by(Simp_tac 1);
|
|
9 |
qed "Let_number_of";
|
|
10 |
Addsimps [Let_number_of];
|
10707
|
11 |
|
|
12 |
(*The condition "True" is a hack to prevent looping.
|
|
13 |
Conditional rewrite rules are tried after unconditional ones, so a rule
|
|
14 |
like eq_nat_number_of will be tried first to eliminate #mm=#nn. *)
|
|
15 |
Goal "True ==> (number_of w = x) = (x = number_of w)";
|
|
16 |
by Auto_tac;
|
|
17 |
qed "number_of_reorient";
|
|
18 |
Addsimps [number_of_reorient];
|