author | nipkow |
Fri, 26 May 1995 18:11:47 +0200 | |
changeset 1128 | 64b30e3cc6d4 |
parent 972 | e61b058d58d2 |
child 1287 | 84f44b84d584 |
permissions | -rw-r--r-- |
923 | 1 |
(* Title: HOL/trancl.thy |
2 |
ID: $Id$ |
|
3 |
Author: Lawrence C Paulson, Cambridge University Computer Laboratory |
|
4 |
Copyright 1992 University of Cambridge |
|
5 |
||
1128
64b30e3cc6d4
Trancl is now based on Relation which used to be in Integ.
nipkow
parents:
972
diff
changeset
|
6 |
Relfexive and Transitive closure of a relation |
923 | 7 |
|
1128
64b30e3cc6d4
Trancl is now based on Relation which used to be in Integ.
nipkow
parents:
972
diff
changeset
|
8 |
rtrancl is refl&transitive closure; trancl is transitive closure |
923 | 9 |
*) |
10 |
||
1128
64b30e3cc6d4
Trancl is now based on Relation which used to be in Integ.
nipkow
parents:
972
diff
changeset
|
11 |
Trancl = Lfp + Relation + |
923 | 12 |
consts |
13 |
rtrancl :: "('a * 'a)set => ('a * 'a)set" ("(_^*)" [100] 100) |
|
14 |
trancl :: "('a * 'a)set => ('a * 'a)set" ("(_^+)" [100] 100) |
|
15 |
defs |
|
16 |
rtrancl_def "r^* == lfp(%s. id Un (r O s))" |
|
17 |
trancl_def "r^+ == r O rtrancl(r)" |
|
18 |
end |