src/HOL/Tools/lin_arith.ML
changeset 48556 62a3fbf9d35b
parent 47108 2a1953f0d20d
child 48559 686cc7c47589
equal deleted inserted replaced
48555:be4bf5f6b2ef 48556:62a3fbf9d35b
   809         @{thm add_0_right},
   809         @{thm add_0_right},
   810         @{thm "Zero_not_Suc"}, @{thm "Suc_not_Zero"}, @{thm "le_0_eq"}, @{thm "One_nat_def"},
   810         @{thm "Zero_not_Suc"}, @{thm "Suc_not_Zero"}, @{thm "le_0_eq"}, @{thm "One_nat_def"},
   811         @{thm "order_less_irrefl"}, @{thm "zero_neq_one"}, @{thm "zero_less_one"},
   811         @{thm "order_less_irrefl"}, @{thm "zero_neq_one"}, @{thm "zero_less_one"},
   812         @{thm "zero_le_one"}, @{thm "zero_neq_one"} RS not_sym, @{thm "not_one_le_zero"},
   812         @{thm "zero_le_one"}, @{thm "zero_neq_one"} RS not_sym, @{thm "not_one_le_zero"},
   813         @{thm "not_one_less_zero"}]
   813         @{thm "not_one_less_zero"}]
   814       addsimprocs [@{simproc abel_cancel_sum}, @{simproc abel_cancel_relation}]
   814       addsimprocs [@{simproc group_cancel_add}, @{simproc group_cancel_diff},
       
   815                    @{simproc group_cancel_eq}, @{simproc group_cancel_le},
       
   816                    @{simproc group_cancel_less}]
   815        (*abel_cancel helps it work in abstract algebraic domains*)
   817        (*abel_cancel helps it work in abstract algebraic domains*)
   816       addsimprocs Nat_Arith.nat_cancel_sums_add
   818       addsimprocs Nat_Arith.nat_cancel_sums_add
   817       |> Simplifier.add_cong @{thm if_weak_cong},
   819       |> Simplifier.add_cong @{thm if_weak_cong},
   818     number_of = number_of}) #>
   820     number_of = number_of}) #>
   819   add_discrete_type @{type_name nat};
   821   add_discrete_type @{type_name nat};