lemma C_case_cong: assumes"∧ r'. r = C⋅r' ==> f⋅r' = g⋅r'" shows"C_case⋅f⋅r = C_case⋅g⋅r" using assms by (cases r) auto
lemma C_cases: obtains n where"r = C" | "r = C\<infinity>" proof-
{ fix m have"∃ n. C_take m ⋅ r = C " proof (rule C.finite_induct) have"⊥ = C"by simp thus"∃n. ⊥ = C".. next fix r show"∃n. r = C==>∃n. C⋅r = C" by (auto simp del: iterate_Suc simp add: iterate_Suc[symmetric]) qed
} thenobtain f where take: "∧ m. C_take m ⋅ r = C m"by metis have"chain (λ m. C m)"using ch2ch_Rep_cfunL[OF C.chain_take, where x=r, unfolded take]. hence"mono f"by (auto simp add: mono_iff_le_Suc chain_def elim!:chainE) have r: "r = (⊔ m. C m)"by (metis (lifting) take C.reach lub_eq) from‹mono f› show thesis proof(rule nat_mono_characterization) fix n assume n: "∧ m. n ≤ m ==> f n = f m" have"max_in_chain n (λ m. C m)" apply (rule max_in_chainI) apply simp apply (erule n) done hence"(⊔ m. C m) = C n"unfolding maxinch_is_thelub[OF ‹chain _›]. thus ?thesis using that unfolding r by blast next assume"∧m. ∃n. m ≤ f n" hence"∧ n. C⊑ r"unfolding r by (fastforce intro: below_lub[OF ‹chain _›]) hence"(⊔ n. C) ⊑ r" by (rule lub_below[OF chain_iterate]) hence"C\<infinity> ⊑ r"unfolding Cinf_def fix_def2. hence"C\<infinity> = r"using below_Cinf by (metis below_antisym) thus thesis using that by blast qed qed
lemma C_case_Cinf[simp]: "C_case ⋅ f ⋅ C\<infinity> = f ⋅ C\<infinity>" unfolding Cinf_def by (subst fix_eq) simp
end
Messung V0.5 in Prozent
¤ Dauer der Verarbeitung: 0.14 Sekunden
(vorverarbeitet am 2026-06-10)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.