equal
deleted
inserted
replaced
|
1 (* Title: ZF/AC/AC0_AC1.ML |
|
2 ID: $Id$ |
|
3 Author: Krzysztof Gr`abczewski |
|
4 |
|
5 AC0 is equivalent to AC1 |
|
6 AC0 comes from Suppes, AC1 from Rubin & Rubin |
|
7 *) |
|
8 |
|
9 goal thy "!!A. 0~:A ==> A <= Pow(Union(A))-{0}"; |
|
10 by (fast_tac AC_cs 1); |
|
11 val subset_Pow_Union = result(); |
|
12 |
|
13 goal thy "!!f. [| f:(PROD X:A. X); D<=A |] ==> EX g. g:(PROD X:D. X)"; |
|
14 by (fast_tac (AC_cs addSIs [restrict_type, apply_type]) 1); |
|
15 val lemma1 = result(); |
|
16 |
|
17 val prems = goalw thy AC_defs "!!Z. AC0 ==> AC1"; |
|
18 by (fast_tac (FOL_cs addSEs [lemma1, subset_Pow_Union]) 1); |
|
19 result(); |
|
20 |
|
21 val prems = goalw thy AC_defs "!!Z. AC1 ==> AC0"; |
|
22 by (fast_tac (FOL_cs addSIs [notI, singletonI] addSEs [notE, DiffE]) 1); |
|
23 result(); |