(* $Id: Ex1.thy,v 1.2 2005/09/03 15:54:11 wenzelm Exp $ *) header {* Section 10.4 *} theory Ex1 imports LCF begin consts P :: "'a => tr" G :: "'a => 'a" H :: "'a => 'a" K :: "('a => 'a) => ('a => 'a)" axioms P_strict: "P(UU) = UU" K: "K = (%h x. P(x) => x | h(h(G(x))))" H: "H = FIX(K)" ML {* use_legacy_bindings (the_context ()) *} end
theorem H_unfold:
H = K(H)
theorem H_strict:
H(UU) = UU
theorem H_idemp_lemma:
∀x. H(FIX(K, x)) = FIX(K, x)
theorem H_idemp:
∀x. H(H(x)) = H(x)