src/HOL/Nat.thy
changeset 27789 1bf827e3258d
parent 27679 6392b92c3536
child 27823 52971512d1a2
equal deleted inserted replaced
27788:5def98c2646b 27789:1bf827e3258d
  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"