Prove: ALL(x):ALL(y):ALL(z):[xpu & y
pu & z
pu & ALL(a):[a
x => a
z] & ALL(a):[a
y => a
z] => ALL(a):[a
x&&y => a
z] & ALL(a):[a
x||y => a
z]] where pu is the power set of a "universal" set u && is the pairwise intersection operator on pu || is the pairwise union operator on pu We begin by defining the set operators for a universal set u (lines 1 through 10). Let u be a "universal" set. (Actually just an arbitrary set.) 1 Set(u) Premise Define: Set operators &&, ||, ` (built into DC Proof) 2 ALL(a):[Set(a) => EXIST(b):[Set(b) & ALL(c):[c
b <=> Set(c) & ALL(d):[d
c => d
a]] & ALL(c):ALL(d):[c
b & d
b => Set(c||d) & c||d
b & ALL(e):[e
c||d <=> e
c | e
d]] & ALL(c):ALL(d):[c
b & d
b => Set(c&&d) & c&&d
b & ALL(e):[e
c&&d <=> e
c & e
d]] & ALL(c):[c
b => Set(`c) & `c
b & ALL(d):[d
`c <=> d
a & ~d
c]]]] Set Ops Apply definition of set operators for set u. 3 Set(u) => EXIST(b):[Set(b) & ALL(c):[c
b <=> Set(c) & ALL(d):[d
c => d
u]] & ALL(c):ALL(d):[c
b & d
b => Set(c||d) & c||d
b & ALL(e):[e
c||d <=> e
c | e
d]] & ALL(c):ALL(d):[c
b & d
b => Set(c&&d) & c&&d
b & ALL(e):[e
c&&d <=> e
c & e
d]] & ALL(c):[c
b => Set(`c) & `c
b & ALL(d):[d
`c <=> d
u & ~d
c]]] U Spec, 2 4 EXIST(b):[Set(b) & ALL(c):[c
b <=> Set(c) & ALL(d):[d
c => d
u]] & ALL(c):ALL(d):[c
b & d
b => Set(c||d) & c||d
b & ALL(e):[e
c||d <=> e
c | e
d]] & ALL(c):ALL(d):[c
b & d
b => Set(c&&d) & c&&d
b & ALL(e):[e
c&&d <=> e
c & e
d]] & ALL(c):[c
b => Set(`c) & `c
b & ALL(d):[d
`c <=> d
u & ~d
c]]] Detach, 3, 1 Define: pu, the power set of u with operators ||, && and ` 5 Set(pu) & ALL(c):[c
pu <=> Set(c) & ALL(d):[d
c => d
u]] & ALL(c):ALL(d):[c
pu & d
pu => Set(c||d) & c||d
pu & ALL(e):[e
c||d <=> e
c | e
d]] & ALL(c):ALL(d):[c
pu & d
pu => Set(c&&d) & c&&d
pu & ALL(e):[e
c&&d <=> e
c & e
d]] & ALL(c):[c
pu => Set(`c) & `c
pu & ALL(d):[d
`c <=> d
u & ~d
c]] E Spec, 4 6 Set(pu) Split, 5 7 ALL(c):[c
pu <=> Set(c) & ALL(d):[d
c => d
u]] Split, 5 Define: Pairwise union operator (||) on pu 8 ALL(c):ALL(d):[c
pu & d
pu => Set(c||d) & c||d
pu & ALL(e):[e
c||d <=> e
c | e
d]] Split, 5 Define: Pairwise intersection operator (&&) on pu 9 ALL(c):ALL(d):[c
pu & d
pu => Set(c&&d) & c&&d
pu & ALL(e):[e
c&&d <=> e
c & e
d]] Split, 5 Define: Set complement operator (`) on pu 10 ALL(c):[c
pu => Set(`c) & `c
pu & ALL(d):[d
`c <=> d
u & ~d
c]] Split, 5 Prove: x
pu & y
pu & z
pu & ALL(a):[a
x => a
z] & ALL(a):[a
y => a
z] => ALL(a):[a
x&&y => a
z] & ALL(a):[a
x||y => a
z] Suppose... 11 x
pu & y
pu & z
pu & ALL(a):[a
x => a
z] & ALL(a):[a
y => a
z] Premise 12 x
pu Split, 11 13 y
pu Split, 11 14 z
pu Split, 11 x is a subset of z 15 ALL(a):[a
x => a
z] Split, 11 y is a subset of z 16 ALL(a):[a
y => a
z] Split, 11 Prove: q
x&&y => q
z Suppose... 17 q
x&&y Premise Applying the definition of &&... 18 ALL(d):[x
pu & d
pu => Set(x&&d) & x&&d
pu & ALL(e):[e
x&&d <=> e
x & e
d]] U Spec, 9 19 x
pu & y
pu => Set(x&&y) & x&&y
pu & ALL(e):[e
x&&y <=> e
x & e
y] U Spec, 18 20 x
pu & y
pu Join, 12, 13 21 Set(x&&y) & x&&y
pu & ALL(e):[e
x&&y <=> e
x & e
y] Detach, 19, 20 22 Set(x&&y) Split, 21 23 x&&y
pu Split, 21 24 ALL(e):[e
x&&y <=> e
x & e
y] Split, 21 25 q
x&&y <=> q
x & q
y U Spec, 24 26 [q
x&&y => q
x & q
y] & [q
x & q
y => q
x&&y] Iff-And, 25 27 q
x&&y => q
x & q
y Split, 26 28 q
x & q
y => q
x&&y Split, 26 From the definition of &&... 29 q
x & q
y Detach, 27, 17 30 q
x Split, 29 31 q
y Split, 29 Since x is a subset of z... 32 q
x => q
z U Spec, 15 33 q
z Detach, 32, 30 As Required: 34 q
x&&y => q
z Conclusion, 17 Generalizing... 35 ALL(a):[a
x&&y => a
z] U Gen, 34 Prove: q
x||y => q
z Suppose... 36 q
x||y Premise Applying the definition of ||... 37 ALL(d):[x
pu & d
pu => Set(x||d) & x||d
pu & ALL(e):[e
x||d <=> e
x | e
d]] U Spec, 8 38 x
pu & y
pu => Set(x||y) & x||y
pu & ALL(e):[e
x||y <=> e
x | e
y] U Spec, 37 39 x
pu & y
pu Join, 12, 13 40 Set(x||y) & x||y
pu & ALL(e):[e
x||y <=> e
x | e
y] Detach, 38, 39 41 Set(x||y) Split, 40 42 x||y
pu Split, 40 43 ALL(e):[e
x||y <=> e
x | e
y] Split, 40 44 q
x||y <=> q
x | q
y U Spec, 43 45 [q
x||y => q
x | q
y] & [q
x | q
y => q
x||y] Iff-And, 44 46 q
x||y => q
x | q
y Split, 45 47 q
x | q
y => q
x||y Split, 45 Two cases... 48 q
x | q
y Detach, 46, 36 Since x is a subset of z... 49 q
x => q
z U Spec, 15 50 q
y => q
z U Spec, 16 51 [q
x => q
z] & [q
y => q
z] Join, 49, 50 By cases... 52 q
z Cases, 48, 51 As Required: 53 q
x||y => q
z Conclusion, 36 As Required: 54 ALL(a):[a
x||y => a
z] U Gen, 53 55 ALL(a):[a
x&&y => a
z] & ALL(a):[a
x||y => a
z] Join, 35, 54 As Required: 56 x
pu & y
pu & z
pu & ALL(a):[a
x => a
z] & ALL(a):[a
y => a
z] => ALL(a):[a
x&&y => a
z] & ALL(a):[a
x||y => a
z] Conclusion, 11 Generalizing... 57 ALL(z):[x
pu & y
pu & z
pu & ALL(a):[a
x => a
z] & ALL(a):[a
y => a
z] => ALL(a):[a
x&&y => a
z] & ALL(a):[a
x||y => a
z]] U Gen, 56 58 ALL(y):ALL(z):[x
pu & y
pu & z
pu & ALL(a):[a
x => a
z] & ALL(a):[a
y => a
z] => ALL(a):[a
x&&y => a
z] & ALL(a):[a
x||y => a
z]] U Gen, 57 As Required: 59 ALL(x):ALL(y):ALL(z):[x
pu & y
pu & z
pu & ALL(a):[a
x => a
z] & ALL(a):[a
y => a
z] => ALL(a):[a
x&&y => a
z] & ALL(a):[a
x||y => a
z]] U Gen, 58