src/CCL/wfd.thy
changeset 0 a5a9c433f639
child 227 5415c6ad0028
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/CCL/wfd.thy	Thu Sep 16 12:20:38 1993 +0200
@@ -0,0 +1,34 @@
+(*  Title: 	CCL/wf.thy
+    ID:         $Id$
+    Author: 	Martin Coen, Cambridge University Computer Laboratory
+    Copyright   1993  University of Cambridge
+
+Well-founded relations in CCL.
+*)
+
+Wfd = Trancl + Type +
+
+consts
+      (*** Predicates ***)
+  Wfd        ::       "[i set] => o"
+      (*** Relations ***)
+  wf         ::       "[i set] => i set"
+  wmap       ::       "[i=>i,i set] => i set"
+  "**"       ::       "[i set,i set] => i set"      (infixl 70)
+  NatPR      ::       "i set"
+  ListPR     ::       "i set => i set"
+
+rules
+
+  Wfd_def
+  "Wfd(R) == ALL P.(ALL x.(ALL y.<y,x> : R --> y:P) --> x:P) --> (ALL a.a:P)"
+
+  wf_def         "wf(R) == {x.x:R & Wfd(R)}"
+
+  wmap_def       "wmap(f,R) == {p. EX x y. p=<x,y>  &  <f(x),f(y)> : R}"
+  lex_def
+  "ra**rb == {p. EX a a' b b'.p = <<a,b>,<a',b'>> & (<a,a'> : ra | (a=a' & <b,b'> : rb))}"
+
+  NatPR_def      "NatPR == {p.EX x:Nat. p=<x,succ(x)>}"
+  ListPR_def     "ListPR(A) == {p.EX h:A.EX t:List(A). p=<t,h.t>}"
+end