equal
deleted
inserted
replaced
374 |
374 |
375 lemma estimate_by_abs: |
375 lemma estimate_by_abs: |
376 "a + b <= (c::'a::lattice_ab_group_add_abs) \<Longrightarrow> a <= c + abs b" |
376 "a + b <= (c::'a::lattice_ab_group_add_abs) \<Longrightarrow> a <= c + abs b" |
377 proof - |
377 proof - |
378 assume "a+b <= c" |
378 assume "a+b <= c" |
379 hence 2: "a <= c+(-b)" by (simp add: algebra_simps) |
379 then have "a <= c+(-b)" by (simp add: algebra_simps) |
380 have 3: "(-b) <= abs b" by (rule abs_ge_minus_self) |
380 have "(-b) <= abs b" by (rule abs_ge_minus_self) |
381 show ?thesis by (rule le_add_right_mono[OF 2 3]) |
381 then have "c + (- b) \<le> c + \<bar>b\<bar>" by (rule add_left_mono) |
|
382 with `a \<le> c + (- b)` show ?thesis by (rule order_trans) |
382 qed |
383 qed |
383 |
384 |
384 class lattice_ring = ordered_ring + lattice_ab_group_add_abs |
385 class lattice_ring = ordered_ring + lattice_ab_group_add_abs |
385 begin |
386 begin |
386 |
387 |
409 apply (simp) |
410 apply (simp) |
410 apply (rule order_trans [OF add_nonpos_nonpos add_nonneg_nonneg]) |
411 apply (rule order_trans [OF add_nonpos_nonpos add_nonneg_nonneg]) |
411 apply (simp_all add: mult_nonneg_nonneg mult_nonpos_nonpos) |
412 apply (simp_all add: mult_nonneg_nonneg mult_nonpos_nonpos) |
412 done |
413 done |
413 have yx: "?y <= ?x" |
414 have yx: "?y <= ?x" |
414 apply (simp add:diff_def) |
415 apply (simp add:diff_minus) |
415 apply (rule order_trans [OF add_nonpos_nonpos add_nonneg_nonneg]) |
416 apply (rule order_trans [OF add_nonpos_nonpos add_nonneg_nonneg]) |
416 apply (simp_all add: mult_nonneg_nonpos mult_nonpos_nonneg) |
417 apply (simp_all add: mult_nonneg_nonpos mult_nonpos_nonneg) |
417 done |
418 done |
418 have i1: "a*b <= abs a * abs b" by (simp only: a b yx) |
419 have i1: "a*b <= abs a * abs b" by (simp only: a b yx) |
419 have i2: "- (abs a * abs b) <= a*b" by (simp only: a b xy) |
420 have i2: "- (abs a * abs b) <= a*b" by (simp only: a b xy) |