equal
deleted
inserted
replaced
1307 assumes mono: "!!n. f n < f(Suc n)" and "n < n'" |
1307 assumes mono: "!!n. f n < f(Suc n)" and "n < n'" |
1308 shows "f n < f n'" |
1308 shows "f n < f n'" |
1309 using `n < n'` |
1309 using `n < n'` |
1310 by (induct n n' rule: less_Suc_induct[consumes 1]) (auto intro: mono) |
1310 by (induct n n' rule: less_Suc_induct[consumes 1]) (auto intro: mono) |
1311 |
1311 |
|
1312 lemma lift_Suc_mono_less_iff: |
|
1313 "(!!n. f n < f(Suc n)) \<Longrightarrow> f(n) < f(m) \<longleftrightarrow> n<m" |
|
1314 by(blast intro: less_asym' lift_Suc_mono_less[of f] |
|
1315 dest: linorder_not_less[THEN iffD1] le_eq_less_or_eq[THEN iffD1]) |
|
1316 |
1312 end |
1317 end |
|
1318 |
|
1319 |
|
1320 lemma mono_nat_linear_lb: |
|
1321 "(!!m n::nat. m<n \<Longrightarrow> f m < f n) \<Longrightarrow> f(m)+k \<le> f(m+k)" |
|
1322 apply(induct_tac k) |
|
1323 apply simp |
|
1324 apply(erule_tac x="m+n" in meta_allE) |
|
1325 apply(erule_tac x="m+n+1" in meta_allE) |
|
1326 apply simp |
|
1327 done |
1313 |
1328 |
1314 |
1329 |
1315 text{*Subtraction laws, mostly by Clemens Ballarin*} |
1330 text{*Subtraction laws, mostly by Clemens Ballarin*} |
1316 |
1331 |
1317 lemma diff_less_mono: "[| a < (b::nat); c \<le> a |] ==> a-c < b-c" |
1332 lemma diff_less_mono: "[| a < (b::nat); c \<le> a |] ==> a-c < b-c" |