diff -r 3f7d67927fe2 -r 7f5a4cd08209 src/HOL/Relation.thy --- a/src/HOL/Relation.thy Mon Feb 05 14:44:09 1996 +0100 +++ b/src/HOL/Relation.thy Mon Feb 05 21:27:16 1996 +0100 @@ -1,24 +1,24 @@ -(* Title: Relation.thy +(* Title: Relation.thy ID: $Id$ - Author: Riccardo Mattolini, Dip. Sistemi e Informatica - and Lawrence C Paulson, Cambridge University Computer Laboratory + Author: Riccardo Mattolini, Dip. Sistemi e Informatica + and Lawrence C Paulson, Cambridge University Computer Laboratory Copyright 1994 Universita' di Firenze Copyright 1993 University of Cambridge *) Relation = Prod + consts - id :: "('a * 'a)set" (*the identity relation*) - O :: "[('b * 'c)set, ('a * 'b)set] => ('a * 'c)set" (infixr 60) - trans :: "('a * 'a)set => bool" (*transitivity predicate*) + id :: "('a * 'a)set" (*the identity relation*) + O :: "[('b * 'c)set, ('a * 'b)set] => ('a * 'c)set" (infixr 60) + trans :: "('a * 'a)set => bool" (*transitivity predicate*) converse :: "('a * 'b)set => ('b * 'a)set" "^^" :: "[('a * 'b) set, 'a set] => 'b set" (infixl 90) Domain :: "('a * 'b) set => 'a set" Range :: "('a * 'b) set => 'b set" defs - id_def "id == {p. ? x. p = (x,x)}" - comp_def "r O s == {(x,z). ? y. (x,y):s & (y,z):r}" - trans_def "trans(r) == (!x y z. (x,y):r --> (y,z):r --> (x,z):r)" + id_def "id == {p. ? x. p = (x,x)}" + comp_def "r O s == {(x,z). ? y. (x,y):s & (y,z):r}" + trans_def "trans(r) == (!x y z. (x,y):r --> (y,z):r --> (x,z):r)" converse_def "converse(r) == {(y,x). (x,y):r}" Domain_def "Domain(r) == {x. ? y. (x,y):r}" Range_def "Range(r) == Domain(converse(r))"