Theory Ex1

Up to index of Isabelle/LCF/ex

theory Ex1
imports LCF
uses [Ex1.ML]
begin

(* $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)