equal
deleted
inserted
replaced
1023 text \<open>non-strict, in both arguments\<close> |
1023 text \<open>non-strict, in both arguments\<close> |
1024 lemma add_le_mono: "[| i \<le> j; k \<le> l |] ==> i + k \<le> j + (l::nat)" |
1024 lemma add_le_mono: "[| i \<le> j; k \<le> l |] ==> i + k \<le> j + (l::nat)" |
1025 by (rule add_mono) |
1025 by (rule add_mono) |
1026 |
1026 |
1027 lemma le_add2: "n \<le> ((m + n)::nat)" |
1027 lemma le_add2: "n \<le> ((m + n)::nat)" |
1028 by (insert add_right_mono [of 0 m n], simp) |
1028 by simp |
1029 |
1029 |
1030 lemma le_add1: "n \<le> ((n + m)::nat)" |
1030 lemma le_add1: "n \<le> ((n + m)::nat)" |
1031 by (simp add: add.commute, rule le_add2) |
1031 by simp |
1032 |
1032 |
1033 lemma less_add_Suc1: "i < Suc (i + m)" |
1033 lemma less_add_Suc1: "i < Suc (i + m)" |
1034 by (rule le_less_trans, rule le_add1, rule lessI) |
1034 by (rule le_less_trans, rule le_add1, rule lessI) |
1035 |
1035 |
1036 lemma less_add_Suc2: "i < Suc (m + i)" |
1036 lemma less_add_Suc2: "i < Suc (m + i)" |