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)) ›
end
Messung V0.5 in Prozent
¤ Dauer der Verarbeitung: 0.13 Sekunden
(vorverarbeitet am 2026-04-25)
¤
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.