equal
deleted
inserted
replaced
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 |