author | wenzelm |
Fri, 01 Dec 2000 19:39:54 +0100 | |
changeset 10562 | fcd29e58c40c |
parent 9907 | 473a6604da94 |
permissions | -rw-r--r-- |
1461 | 1 |
(* Title: ZF/Rel.ML |
435 | 2 |
ID: $Id$ |
1461 | 3 |
Author: Lawrence C Paulson, Cambridge University Computer Laboratory |
435 | 4 |
Copyright 1994 University of Cambridge |
5 |
||
5147
825877190618
More tidying and removal of "\!\!... from Goal commands
paulson
parents:
5137
diff
changeset
|
6 |
Relations in Zermelo-Fraenkel Set Theory |
435 | 7 |
*) |
8 |
||
9 |
(*** Some properties of relations -- useful? ***) |
|
10 |
||
11 |
(* irreflexivity *) |
|
12 |
||
5321 | 13 |
val prems = Goalw [irrefl_def] |
435 | 14 |
"[| !!x. x:A ==> <x,x> ~: r |] ==> irrefl(A,r)"; |
15 |
by (REPEAT (ares_tac (prems @ [ballI]) 1)); |
|
760 | 16 |
qed "irreflI"; |
435 | 17 |
|
5321 | 18 |
Goalw [irrefl_def] "[| irrefl(A,r); x:A |] ==> <x,x> ~: r"; |
19 |
by (Blast_tac 1); |
|
760 | 20 |
qed "irreflE"; |
435 | 21 |
|
22 |
(* symmetry *) |
|
23 |
||
5321 | 24 |
val prems = Goalw [sym_def] |
435 | 25 |
"[| !!x y.<x,y>: r ==> <y,x>: r |] ==> sym(r)"; |
26 |
by (REPEAT (ares_tac (prems @ [allI,impI]) 1)); |
|
760 | 27 |
qed "symI"; |
435 | 28 |
|
5137 | 29 |
Goalw [sym_def] "[| sym(r); <x,y>: r |] ==> <y,x>: r"; |
3016 | 30 |
by (Blast_tac 1); |
760 | 31 |
qed "symE"; |
435 | 32 |
|
33 |
(* antisymmetry *) |
|
34 |
||
5321 | 35 |
val prems = Goalw [antisym_def] |
435 | 36 |
"[| !!x y.[| <x,y>: r; <y,x>: r |] ==> x=y |] ==> \ |
37 |
\ antisym(r)"; |
|
38 |
by (REPEAT (ares_tac (prems @ [allI,impI]) 1)); |
|
760 | 39 |
qed "antisymI"; |
435 | 40 |
|
5321 | 41 |
Goalw [antisym_def] "[| antisym(r); <x,y>: r; <y,x>: r |] ==> x=y"; |
3016 | 42 |
by (Blast_tac 1); |
760 | 43 |
qed "antisymE"; |
435 | 44 |
|
45 |
(* transitivity *) |
|
46 |
||
5321 | 47 |
Goalw [trans_def] "[| trans(r); <a,b>:r; <b,c>:r |] ==> <a,c>:r"; |
3016 | 48 |
by (Blast_tac 1); |
760 | 49 |
qed "transD"; |
435 | 50 |
|
5067 | 51 |
Goalw [trans_on_def] |
5147
825877190618
More tidying and removal of "\!\!... from Goal commands
paulson
parents:
5137
diff
changeset
|
52 |
"[| trans[A](r); <a,b>:r; <b,c>:r; a:A; b:A; c:A |] ==> <a,c>:r"; |
3016 | 53 |
by (Blast_tac 1); |
760 | 54 |
qed "trans_onD"; |
435 | 55 |