src/HOL/Inductive.thy
changeset 63981 6f7db4f8df4c
parent 63980 f8e556c8ad6f
child 64674 ef0a5fd30f3b
equal deleted inserted replaced
63980:f8e556c8ad6f 63981:6f7db4f8df4c
    21 
    21 
    22 definition lfp :: "('a \<Rightarrow> 'a) \<Rightarrow> 'a"
    22 definition lfp :: "('a \<Rightarrow> 'a) \<Rightarrow> 'a"
    23   where "lfp f = Inf {u. f u \<le> u}"
    23   where "lfp f = Inf {u. f u \<le> u}"
    24 
    24 
    25 lemma lfp_lowerbound: "f A \<le> A \<Longrightarrow> lfp f \<le> A"
    25 lemma lfp_lowerbound: "f A \<le> A \<Longrightarrow> lfp f \<le> A"
    26   by (auto simp add: lfp_def intro: Inf_lower)
    26   unfolding lfp_def by (rule Inf_lower) simp
    27 
    27 
    28 lemma lfp_greatest: "(\<And>u. f u \<le> u \<Longrightarrow> A \<le> u) \<Longrightarrow> A \<le> lfp f"
    28 lemma lfp_greatest: "(\<And>u. f u \<le> u \<Longrightarrow> A \<le> u) \<Longrightarrow> A \<le> lfp f"
    29   by (auto simp add: lfp_def intro: Inf_greatest)
    29   unfolding lfp_def by (rule Inf_greatest) simp
    30 
    30 
    31 end
    31 end
    32 
    32 
    33 lemma lfp_fixpoint:
    33 lemma lfp_fixpoint:
    34   assumes "mono f"
    34   assumes "mono f"