src/HOL/ex/Numeral.thy
changeset 33523 96730ad673be
parent 33346 c5cd93763e71
child 35028 108662d50512
equal deleted inserted replaced
33522:737589bb9bb8 33523:96730ad673be
   921 declare power_minus_Dig0 [simp]
   921 declare power_minus_Dig0 [simp]
   922 declare power_minus_Dig1 [simp]
   922 declare power_minus_Dig1 [simp]
   923 
   923 
   924 declare Suc_of_num [simp]
   924 declare Suc_of_num [simp]
   925 
   925 
   926 thm numeral
       
   927 
       
   928 
   926 
   929 subsection {* Simplification Procedures *}
   927 subsection {* Simplification Procedures *}
   930 
   928 
   931 subsubsection {* Reorientation of equalities *}
   929 subsubsection {* Reorientation of equalities *}
   932 
   930 
   933 setup {*
   931 setup {*
   934   ReorientProc.add
   932   Reorient_Proc.add
   935     (fn Const(@{const_name of_num}, _) $ _ => true
   933     (fn Const(@{const_name of_num}, _) $ _ => true
   936       | Const(@{const_name uminus}, _) $
   934       | Const(@{const_name uminus}, _) $
   937           (Const(@{const_name of_num}, _) $ _) => true
   935           (Const(@{const_name of_num}, _) $ _) => true
   938       | _ => false)
   936       | _ => false)
   939 *}
   937 *}
   940 
   938 
   941 simproc_setup reorient_num ("of_num n = x" | "- of_num m = y") = ReorientProc.proc
   939 simproc_setup reorient_num ("of_num n = x" | "- of_num m = y") = Reorient_Proc.proc
       
   940 
   942 
   941 
   943 subsubsection {* Constant folding for multiplication in semirings *}
   942 subsubsection {* Constant folding for multiplication in semirings *}
   944 
   943 
   945 context semiring_numeral
   944 context semiring_numeral
   946 begin
   945 begin