343 addsimps @{thms z3div_def} addsimps @{thms z3mod_def} |
343 addsimps @{thms z3div_def} addsimps @{thms z3mod_def} |
344 addsimprocs [@{simproc numeral_divmod}] |
344 addsimprocs [@{simproc numeral_divmod}] |
345 addsimprocs [ |
345 addsimprocs [ |
346 Simplifier.make_simproc @{context} "fast_int_arith" |
346 Simplifier.make_simproc @{context} "fast_int_arith" |
347 {lhss = [@{term "(m::int) < n"}, @{term "(m::int) \<le> n"}, @{term "(m::int) = n"}], |
347 {lhss = [@{term "(m::int) < n"}, @{term "(m::int) \<le> n"}, @{term "(m::int) = n"}], |
348 proc = K Lin_Arith.simproc, identifier = []}, |
348 proc = K Lin_Arith.simproc}, |
349 Simplifier.make_simproc @{context} "antisym_le" |
349 Simplifier.make_simproc @{context} "antisym_le" |
350 {lhss = [@{term "(x::'a::order) \<le> y"}], |
350 {lhss = [@{term "(x::'a::order) \<le> y"}], |
351 proc = K prove_antisym_le, identifier = []}, |
351 proc = K prove_antisym_le}, |
352 Simplifier.make_simproc @{context} "antisym_less" |
352 Simplifier.make_simproc @{context} "antisym_less" |
353 {lhss = [@{term "\<not> (x::'a::linorder) < y"}], |
353 {lhss = [@{term "\<not> (x::'a::linorder) < y"}], |
354 proc = K prove_antisym_less, identifier = []}]) |
354 proc = K prove_antisym_less}]) |
355 |
355 |
356 structure Simpset = Generic_Data |
356 structure Simpset = Generic_Data |
357 ( |
357 ( |
358 type T = simpset |
358 type T = simpset |
359 val empty = basic_simpset |
359 val empty = basic_simpset |