lemma l_lemma: "\a = b; a ` t = u\ \ b ` t = u" by (simp add: idgen_def)
lemma idgen_lemmas: "idgen(d) = d \ d ` bot = bot" "idgen(d) = d \ d ` true = true" "idgen(d) = d \ d ` false = false" "idgen(d) = d \ d ` = " "idgen(d) = d \ d ` (lam x. f(x)) = lam x. d ` f(x)" by (erule l_lemma, simp add: idgen_def)+
(* Proof of Reachability law - show that fix and lam x.x both give LEAST fixed points
of idgen and hence are they same *)
lemma po_eta: "\ALL x. t ` x [= u ` x; EX f. t=lam x. f(x); EX f. u=lam x. f(x)\ \ t [= u" apply (drule cond_eta)+ apply (erule ssubst) apply (erule ssubst) apply (rule po_lam [THEN iffD2]) apply simp done
schematic_goal po_eta_lemma: "idgen(d) = d \ d = lam x. ?f(x)" apply (unfold idgen_def) apply (erule sym) done
lemma lemma1: "idgen(d) = d \
{p. EX a b. p=<a,b> \<and> (EX t. a=fix(idgen) ` t \<and> b = d ` t)} <=
POgen({p. EX a b. p=<a,b> \<and> (EX t. a=fix(idgen) ` t \<and> b = d ` t)})" apply clarify apply (rule_tac t = t in term_case) apply (simp_all add: POgenXH idgen_lemmas idgen_lemmas [OF fix_idgenfp]) apply blast apply fast done
lemma lemma2: "idgen(d) = d \
{p. EX a b. p=<a,b> \<and> b = d ` a} <= POgen({p. EX a b. p=<a,b> \<and> b = d ` a})" apply clarify apply (rule_tac t = a in term_case) apply (simp_all add: POgenXH idgen_lemmas) apply fast done
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.