620 (* not needed because x < (y::nat) can be rewritten as Suc x <= y: of_nat_less_iff RS iffD2 *) |
620 (* not needed because x < (y::nat) can be rewritten as Suc x <= y: of_nat_less_iff RS iffD2 *) |
621 #> Lin_Arith.add_inj_thms [@{thm of_int_le_iff} RS iffD2, @{thm of_int_eq_iff} RS iffD2] |
621 #> Lin_Arith.add_inj_thms [@{thm of_int_le_iff} RS iffD2, @{thm of_int_eq_iff} RS iffD2] |
622 (* not needed because x < (y::int) can be rewritten as x + 1 <= y: of_int_less_iff RS iffD2 *) |
622 (* not needed because x < (y::int) can be rewritten as x + 1 <= y: of_int_less_iff RS iffD2 *) |
623 #> Lin_Arith.add_simps [@{thm neg_less_iff_less}, |
623 #> Lin_Arith.add_simps [@{thm neg_less_iff_less}, |
624 @{thm True_implies_equals}, |
624 @{thm True_implies_equals}, |
625 read_instantiate @{context} [(("a", 0), "(numeral ?v)")] @{thm distrib_left}, |
625 @{thm distrib_left [where a = "numeral v" for v]}, |
626 read_instantiate @{context} [(("a", 0), "(- numeral ?v)")] @{thm distrib_left}, |
626 @{thm distrib_left [where a = "- numeral v" for v]}, |
627 @{thm divide_1}, @{thm divide_zero_left}, |
627 @{thm divide_1}, @{thm divide_zero_left}, |
628 @{thm times_divide_eq_right}, @{thm times_divide_eq_left}, |
628 @{thm times_divide_eq_right}, @{thm times_divide_eq_left}, |
629 @{thm minus_divide_left} RS sym, @{thm minus_divide_right} RS sym, |
629 @{thm minus_divide_left} RS sym, @{thm minus_divide_right} RS sym, |
630 @{thm of_int_minus}, @{thm of_int_diff}, |
630 @{thm of_int_minus}, @{thm of_int_diff}, |
631 @{thm of_int_of_nat_eq}] |
631 @{thm of_int_of_nat_eq}] |