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
