(*proof requires higher-level assumptions or a delaying of hyp_subst_tac*) lemma compE: "[xz : r O s; ∧x y z. [xz = ; :s; :r]==> P]==> P" unfolding relcomp_def by blast
(*nice induction rule*) lemma rtrancl_induct: "[ : r^*; P(a); ∧y z. [ : r^*; : r; P(y)]==> P(z) ] ==> P(b)" (*by induction on this formula*) apply (subgoal_tac "ALL y. = ⟶ P(y)") (*now solve first subgoal: this formula is sufficient*) apply blast (*now do the induction*) apply (erule rtrancl_full_induct) apply blast apply blast done
(*transitivity of transitive closure!! -- by induction.*) lemma trans_rtrancl: "trans(r^*)" apply (rule transI) apply (rule_tac b = z in rtrancl_induct) apply (fast elim: rtrancl_into_rtrancl)+ done
(*elimination of rtrancl -- by induction on a special formula*) lemma rtranclE: "[ : r^*; a = b ==> P; ∧y. [ : r^*; : r]==> P]==> P" apply (subgoal_tac "a = b | (EX y. : r^* ∧ : r)") prefer 2 apply (erule rtrancl_induct) apply blast apply blast apply blast done
subsection‹The relation trancl›
subsubsection ‹Conversions between trancl and rtrancl›
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.