lemma Br_neq_left: "l \ bt(A) \ Br(x, l, r) \ l" by (induct arbitrary: x r set: bt) auto
lemma Br_iff: "Br(a, l, r) = Br(a', l', r') \ a = a' \ l = l' \ r = r'" \<comment> \<open>Proving a freeness theorem.\<close> by (fast elim!: bt.free_elims)
lemma bt_rec_type: "\t \ bt(A);
c \<in> C(Lf); \<And>x y z r s. \<lbrakk>x \<in> A; y \<in> bt(A); z \<in> bt(A); r \<in> C(y); s \<in> C(z)\<rbrakk> \<Longrightarrow>
h(x, y, z, r, s) \<in> C(Br(x, y, z)) \<rbrakk> \<Longrightarrow> bt_rec(c, h, t) \<in> C(t)" \<comment> \<open>Type checking for recursor -- example only; not really needed.\<close> apply (induct_tac t) apply simp_all done
subsection \<open>Number of nodes, with an example of tail-recursion\<close>
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 ist noch experimentell.