| 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
 |