lemma iterates_triv: "\n\nat; F(x) = x\ \ F^n (x) = x" by (induct n rule: nat_induct, simp_all)
lemma iterates_type [TC]: "\n \ nat; a \ A; \x. x \ A \ F(x) \ A\ ==> F^n (a) ∈ A" by (induct n rule: nat_induct, simp_all)
lemma iterates_omega_triv: "F(x) = x \ F^\ (x) = x" by (simp add: iterates_omega_def iterates_triv)
lemma Ord_iterates [simp]: "\n\nat; \i. Ord(i) \ Ord(F(i)); Ord(x)\ ==> Ord(F^n (x))" by (induct n rule: nat_induct, simp_all)
lemma iterates_commute: "n \ nat \ F(F^n (x)) = F^n (F(x))" by (induct_tac n, simp_all)
subsection‹Transfinite Recursion›
text‹Transfinite recursion for definitions based on the
three cases of ordinals›
definition
transrec3 :: "[i, i, [i,i]\i, [i,i]\i] \i"where "transrec3(k, a, b, c) \
transrec(k, λx r. if x=0 then a
else if Limit(x) then c(x, λy∈x. r`y)
else b(Arith.pred(x), r ` Arith.pred(x)))"
lemma transrec3_0 [simp]: "transrec3(0,a,b,c) = a" by (rule transrec3_def [THEN def_transrec, THEN trans], simp)
lemma transrec3_succ [simp]: "transrec3(succ(i),a,b,c) = b(i, transrec3(i,a,b,c))" by (rule transrec3_def [THEN def_transrec, THEN trans], simp)
lemma transrec3_Limit: "Limit(i) \
transrec3(i,a,b,c) = c(i, λj∈i. transrec3(j,a,b,c))" by (rule transrec3_def [THEN def_transrec, THEN trans], force)
declaration‹fn _ =>
Simplifier.map_ss (Simplifier.set_mksimps (fn ctxt =>
map mk_eq o Ord_atomize o Variable.gen_all ctxt)) ›
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.