src/HOL/Nat.thy
changeset 60427 b4b672f09270
parent 60353 838025c6e278
child 60562 24af00b010cf
equal deleted inserted replaced
60426:eb3094c6576c 60427:b4b672f09270
  1879   by (induct rule: dec_induct)
  1879   by (induct rule: dec_induct)
  1880      (auto simp del: funpow.simps(2) simp add: funpow_Suc_right
  1880      (auto simp del: funpow.simps(2) simp add: funpow_Suc_right
  1881            intro: order_trans[OF _ funpow_mono])
  1881            intro: order_trans[OF _ funpow_mono])
  1882 
  1882 
  1883 lemma mono_funpow:
  1883 lemma mono_funpow:
  1884   fixes Q :: "('i \<Rightarrow> 'a::{lattice, order_bot}) \<Rightarrow> ('i \<Rightarrow> 'a)"
  1884   fixes Q :: "'a::{lattice, order_bot} \<Rightarrow> 'a"
  1885   shows "mono Q \<Longrightarrow> mono (\<lambda>i. (Q ^^ i) \<bottom>)"
  1885   shows "mono Q \<Longrightarrow> mono (\<lambda>i. (Q ^^ i) \<bottom>)"
  1886   by (auto intro!: funpow_decreasing simp: mono_def)
  1886   by (auto intro!: funpow_decreasing simp: mono_def)
  1887 
  1887 
  1888 lemma antimono_funpow:
  1888 lemma antimono_funpow:
  1889   fixes Q :: "('i \<Rightarrow> 'a::{lattice, order_top}) \<Rightarrow> ('i \<Rightarrow> 'a)"
  1889   fixes Q :: "'a::{lattice, order_top} \<Rightarrow> 'a"
  1890   shows "mono Q \<Longrightarrow> antimono (\<lambda>i. (Q ^^ i) \<top>)"
  1890   shows "mono Q \<Longrightarrow> antimono (\<lambda>i. (Q ^^ i) \<top>)"
  1891   by (auto intro!: funpow_increasing simp: antimono_def)
  1891   by (auto intro!: funpow_increasing simp: antimono_def)
  1892 
  1892 
  1893 subsection {* The divides relation on @{typ nat} *}
  1893 subsection {* The divides relation on @{typ nat} *}
  1894 
  1894