diff -r 000000000000 -r a5a9c433f639 src/CCL/Trancl.thy --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/CCL/Trancl.thy Thu Sep 16 12:20:38 1993 +0200 @@ -0,0 +1,28 @@ +(* Title: CCL/trancl.thy + ID: $Id$ + Author: Martin Coen, Cambridge University Computer Laboratory + Copyright 1993 University of Cambridge + +Transitive closure of a relation +*) + +Trancl = CCL + + +consts + trans :: "i set => o" (*transitivity predicate*) + id :: "i set" + rtrancl :: "i set => i set" ("(_^*)" [100] 100) + trancl :: "i set => i set" ("(_^+)" [100] 100) + O :: "[i set,i set] => i set" (infixr 60) + +rules + +trans_def "trans(r) == (ALL x y z. :r --> :r --> :r)" +comp_def (*composition of relations*) + "r O s == {xz. EX x y z. xz = & :s & :r}" +id_def (*the identity relation*) + "id == {p. EX x. p = }" +rtrancl_def "r^* == lfp(%s. id Un (r O s))" +trancl_def "r^+ == r O rtrancl(r)" + +end