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 ` <a,b> = <d ` a,d ` b>" "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> ∧ (EX t. a=fix(idgen) ` t ∧ b = d ` t)} <= POgen({p. EX a b. p=<a,b> ∧ (EX t. a=fix(idgen) ` t ∧ 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> ∧ b = d ` a} <= POgen({p. EX a b. p=<a,b> ∧ 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 und die Messung sind noch experimentell.