src/HOL/Tools/nat_numeral_simprocs.ML
changeset 61694 6571c78c9667
parent 61144 5e94dfead1c2
child 64244 e7102c40783c
equal deleted inserted replaced
61693:f6b9f528c89c 61694:6571c78c9667
    24 
    24 
    25 structure Nat_Numeral_Simprocs : NAT_NUMERAL_SIMPROCS =
    25 structure Nat_Numeral_Simprocs : NAT_NUMERAL_SIMPROCS =
    26 struct
    26 struct
    27 
    27 
    28 (*Maps n to #n for n = 1, 2*)
    28 (*Maps n to #n for n = 1, 2*)
    29 val numeral_syms = [@{thm numeral_1_eq_1} RS sym, @{thm numeral_2_eq_2} RS sym];
    29 val numeral_syms = [@{thm numeral_One} RS sym, @{thm numeral_2_eq_2} RS sym];
    30 val numeral_sym_ss =
    30 val numeral_sym_ss =
    31   simpset_of (put_simpset HOL_basic_ss @{context} addsimps numeral_syms);
    31   simpset_of (put_simpset HOL_basic_ss @{context} addsimps numeral_syms);
    32 
    32 
    33 (*Utilities*)
    33 (*Utilities*)
    34 
    34 
    57 
    57 
    58 
    58 
    59 (** Other simproc items **)
    59 (** Other simproc items **)
    60 
    60 
    61 val bin_simps =
    61 val bin_simps =
    62      [@{thm numeral_1_eq_1} RS sym,
    62      [@{thm numeral_One} RS sym,
    63       @{thm numeral_plus_numeral}, @{thm add_numeral_left},
    63       @{thm numeral_plus_numeral}, @{thm add_numeral_left},
    64       @{thm diff_nat_numeral}, @{thm diff_0_eq_0}, @{thm diff_0},
    64       @{thm diff_nat_numeral}, @{thm diff_0_eq_0}, @{thm diff_0},
    65       @{thm numeral_times_numeral}, @{thm mult_numeral_left(1)},
    65       @{thm numeral_times_numeral}, @{thm mult_numeral_left(1)},
    66       @{thm if_True}, @{thm if_False}, @{thm not_False_eq_True},
    66       @{thm if_True}, @{thm if_False}, @{thm not_False_eq_True},
    67       @{thm nat_0}, @{thm nat_numeral}, @{thm nat_neg_numeral}] @
    67       @{thm nat_0}, @{thm nat_numeral}, @{thm nat_neg_numeral}] @