312 |
312 |
313 lemma add_le_imp_le_right: |
313 lemma add_le_imp_le_right: |
314 "a + c \<le> b + c ==> a \<le> (b::'a::pordered_ab_semigroup_add_imp_le)" |
314 "a + c \<le> b + c ==> a \<le> (b::'a::pordered_ab_semigroup_add_imp_le)" |
315 by simp |
315 by simp |
316 |
316 |
317 lemma add_increasing: "[|0\<le>a; b\<le>c|] ==> b \<le> a + (c::'a::{pordered_ab_semigroup_add_imp_le, comm_monoid_add})" |
317 lemma add_increasing: |
|
318 fixes c :: "'a::{pordered_ab_semigroup_add_imp_le, comm_monoid_add}" |
|
319 shows "[|0\<le>a; b\<le>c|] ==> b \<le> a + c" |
318 by (insert add_mono [of 0 a b c], simp) |
320 by (insert add_mono [of 0 a b c], simp) |
|
321 |
|
322 lemma add_strict_increasing: |
|
323 fixes c :: "'a::{pordered_ab_semigroup_add_imp_le, comm_monoid_add}" |
|
324 shows "[|0<a; b\<le>c|] ==> b < a + c" |
|
325 by (insert add_less_le_mono [of 0 a b c], simp) |
|
326 |
|
327 lemma add_strict_increasing2: |
|
328 fixes c :: "'a::{pordered_ab_semigroup_add_imp_le, comm_monoid_add}" |
|
329 shows "[|0\<le>a; b<c|] ==> b < a + c" |
|
330 by (insert add_le_less_mono [of 0 a b c], simp) |
|
331 |
319 |
332 |
320 subsection {* Ordering Rules for Unary Minus *} |
333 subsection {* Ordering Rules for Unary Minus *} |
321 |
334 |
322 lemma le_imp_neg_le: |
335 lemma le_imp_neg_le: |
323 assumes "a \<le> (b::'a::{pordered_ab_semigroup_add_imp_le, ab_group_add})" shows "-b \<le> -a" |
336 assumes "a \<le> (b::'a::{pordered_ab_semigroup_add_imp_le, ab_group_add})" shows "-b \<le> -a" |