| 
0
 | 
     1  | 
(*  Title: 	ZF/trancl.thy
  | 
| 
 | 
     2  | 
    ID:         $Id$
  | 
| 
 | 
     3  | 
    Author: 	Lawrence C Paulson, Cambridge University Computer Laboratory
  | 
| 
 | 
     4  | 
    Copyright   1992  University of Cambridge
  | 
| 
 | 
     5  | 
  | 
| 
 | 
     6  | 
Transitive closure of a relation
  | 
| 
 | 
     7  | 
*)
  | 
| 
 | 
     8  | 
  | 
| 
124
 | 
     9  | 
Trancl = Fixedpt + Perm + "mono" +
  | 
| 
0
 | 
    10  | 
consts
  | 
| 
 | 
    11  | 
    "rtrancl"	:: "i=>i"  ("(_^*)" [100] 100)  (*refl/transitive closure*)
 | 
| 
 | 
    12  | 
    "trancl"    :: "i=>i"  ("(_^+)" [100] 100)  (*transitive closure*)
 | 
| 
 | 
    13  | 
    "trans"	:: "i=>o"  			(*transitivity predicate*)
  | 
| 
 | 
    14  | 
  | 
| 
 | 
    15  | 
rules
  | 
| 
 | 
    16  | 
    trans_def   "trans(r) == ALL x y z. <x,y>: r --> <y,z>: r --> <x,z>: r"
  | 
| 
 | 
    17  | 
  | 
| 
 | 
    18  | 
    rtrancl_def	"r^* == lfp(field(r)*field(r), %s. id(field(r)) Un (r O s))"
  | 
| 
 | 
    19  | 
  | 
| 
 | 
    20  | 
    trancl_def  "r^+ == r O r^*"
  | 
| 
 | 
    21  | 
end
  |