src/LCF/ex/Ex2.thy
author nipkow
Tue, 17 Oct 2000 08:00:46 +0200
changeset 10228 e653cb933293
parent 4905 be73ddff6c5a
child 17248 81bf91654e73
permissions -rw-r--r--
added intermediate value thms
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
4905
be73ddff6c5a proper thy files;
wenzelm
parents:
diff changeset
     1
be73ddff6c5a proper thy files;
wenzelm
parents:
diff changeset
     2
(***  Example 3.8  ***)
be73ddff6c5a proper thy files;
wenzelm
parents:
diff changeset
     3
be73ddff6c5a proper thy files;
wenzelm
parents:
diff changeset
     4
Ex2 = LCF +
be73ddff6c5a proper thy files;
wenzelm
parents:
diff changeset
     5
be73ddff6c5a proper thy files;
wenzelm
parents:
diff changeset
     6
consts
be73ddff6c5a proper thy files;
wenzelm
parents:
diff changeset
     7
  P	:: "'a => tr"
be73ddff6c5a proper thy files;
wenzelm
parents:
diff changeset
     8
  F	:: "'a => 'a"
be73ddff6c5a proper thy files;
wenzelm
parents:
diff changeset
     9
  G	:: "'a => 'a"
be73ddff6c5a proper thy files;
wenzelm
parents:
diff changeset
    10
  H	:: "'a => 'b => 'b"
be73ddff6c5a proper thy files;
wenzelm
parents:
diff changeset
    11
  K	:: "('a => 'b => 'b) => ('a => 'b => 'b)"
be73ddff6c5a proper thy files;
wenzelm
parents:
diff changeset
    12
be73ddff6c5a proper thy files;
wenzelm
parents:
diff changeset
    13
rules
be73ddff6c5a proper thy files;
wenzelm
parents:
diff changeset
    14
  F_strict	"F(UU) = UU"
be73ddff6c5a proper thy files;
wenzelm
parents:
diff changeset
    15
  K		"K = (%h x y. P(x) => y | F(h(G(x),y)))"
be73ddff6c5a proper thy files;
wenzelm
parents:
diff changeset
    16
  H		"H = FIX(K)"
be73ddff6c5a proper thy files;
wenzelm
parents:
diff changeset
    17
be73ddff6c5a proper thy files;
wenzelm
parents:
diff changeset
    18
end