equal
deleted
inserted
replaced
2601 let ?n = "of_int (floor (x/a)) + 1" |
2601 let ?n = "of_int (floor (x/a)) + 1" |
2602 have x: "x < ?n * a" |
2602 have x: "x < ?n * a" |
2603 by (meson \<open>0 < a\<close> divide_less_eq floor_unique_iff) |
2603 by (meson \<open>0 < a\<close> divide_less_eq floor_unique_iff) |
2604 have "?n * a \<le> a + x" |
2604 have "?n * a \<le> a + x" |
2605 apply (simp add: algebra_simps) |
2605 apply (simp add: algebra_simps) |
2606 by (metis \<open>0 < a\<close> floor_correct less_irrefl nonzero_mult_divide_cancel_left real_mult_le_cancel_iff2 times_divide_eq_right) |
2606 by (metis \<open>0 < a\<close> floor_correct less_irrefl nonzero_mult_div_cancel_left real_mult_le_cancel_iff2 times_divide_eq_right) |
2607 also have "... < y" |
2607 also have "... < y" |
2608 by (rule 1) |
2608 by (rule 1) |
2609 finally have "?n * a < y" . |
2609 finally have "?n * a < y" . |
2610 with x show ?thesis |
2610 with x show ?thesis |
2611 using Ints_1 Ints_add Ints_of_int that by blast |
2611 using Ints_1 Ints_add Ints_of_int that by blast |
2614 let ?n = "of_int (floor (y/a)) + 1" |
2614 let ?n = "of_int (floor (y/a)) + 1" |
2615 have y: "y < ?n * a" |
2615 have y: "y < ?n * a" |
2616 by (meson \<open>0 < a\<close> divide_less_eq floor_unique_iff) |
2616 by (meson \<open>0 < a\<close> divide_less_eq floor_unique_iff) |
2617 have "?n * a \<le> a + y" |
2617 have "?n * a \<le> a + y" |
2618 apply (simp add: algebra_simps) |
2618 apply (simp add: algebra_simps) |
2619 by (metis \<open>0 < a\<close> floor_correct less_irrefl nonzero_mult_divide_cancel_left real_mult_le_cancel_iff2 times_divide_eq_right) |
2619 by (metis \<open>0 < a\<close> floor_correct less_irrefl nonzero_mult_div_cancel_left real_mult_le_cancel_iff2 times_divide_eq_right) |
2620 also have "... < x" |
2620 also have "... < x" |
2621 by (rule 2) |
2621 by (rule 2) |
2622 finally have "?n * a < x" . |
2622 finally have "?n * a < x" . |
2623 then show ?thesis |
2623 then show ?thesis |
2624 using Ints_1 Ints_add Ints_of_int that y by blast |
2624 using Ints_1 Ints_add Ints_of_int that y by blast |