HomeHome Metamath Proof Explorer < Previous   Next >
Related theorems
Unicode version

Theorem opabid 2805
Description: The law of concretion. Special case of Theorem 9.5 of [Quine] p. 61.
Assertion
Ref Expression
opabid |- (<.x, y>. e. {<.x, y>. | ph} <-> ph)
Distinct variable group:   x,y

Proof of Theorem opabid
StepHypRef Expression
1 clelab 1578 . 2 |- (<.x, y>. e. {z | E.xE.y(z = <.x, y>. /\ ph)} <-> E.z(z = <.x, y>. /\ E.xE.y(z = <.x, y>. /\ ph)))
2 df-opab 2662 . . 3 |- {<.x, y>. | ph} = {z | E.xE.y(z = <.x, y>. /\ ph)}
32eleq2i 1535 . 2 |- (<.x, y>. e. {<.x, y>. | ph} <-> <.x, y>. e. {z | E.xE.y(z = <.x, y>. /\ ph)})
4 19.41v 1303 . . . . . 6 |- (E.z((z = <.x, y>. /\ z = <.w, v>.) /\ [v / y][w / x]ph) <-> (E.z(z = <.x, y>. /\ z = <.w, v>.) /\ [v / y][w / x]ph))
5 anass 439 . . . . . . 7 |- (((z = <.x, y>. /\ z = <.w, v>.) /\ [v / y][w / x]ph) <-> (z = <.x, y>. /\ (z = <.w, v>. /\ [v / y][w / x]ph)))
65exbii 1049 . . . . . 6 |- (E.z((z = <.x, y>. /\ z = <.w, v>.) /\ [v / y][w / x]ph) <-> E.z(z = <.x, y>. /\ (z = <.w, v>. /\ [v / y][w / x]ph)))
7 eqcom 1474 . . . . . . . 8 |- (<.x, y>. = <.w, v>. <-> <.w, v>. = <.x, y>.)
8 opex 2777 . . . . . . . . 9 |- <.x, y>. e. V
98eqvinc 1879 . . . . . . . 8 |- (<.x, y>. = <.w, v>. <-> E.z(z = <.x, y>. /\ z = <.w, v>.))
10 visset 1809 . . . . . . . . 9 |- w e. V
11 visset 1809 . . . . . . . . 9 |- v e. V
12 visset 1809 . . . . . . . . 9 |- y e. V
1310, 11, 12opth 2782 . . . . . . . 8 |- (<.w, v>. = <.x, y>. <-> (w = x /\ v = y))
147, 9, 133bitr3 181 . . . . . . 7 |- (E.z(z = <.x, y>. /\ z = <.w, v>.) <-> (w = x /\ v = y))
1514anbi1i 481 . . . . . 6 |- ((E.z(z = <.x, y>. /\ z = <.w, v>.) /\ [v / y][w / x]ph) <-> ((w = x /\ v = y) /\ [v / y][w / x]ph))
164, 6, 153bitr3r 182 . . . . 5 |- (((w = x /\ v = y) /\ [v / y][w / x]ph) <-> E.z(z = <.x, y>. /\ (z = <.w, v>. /\ [v / y][w / x]ph)))
17162exbii 1050 . . . 4 |- (E.wE.v((w = x /\ v = y) /\ [v / y][w / x]ph) <-> E.wE.vE.z(z = <.x, y>. /\ (z = <.w, v>. /\ [v / y][w / x]ph)))
18 sbel2x 1343 . . . 4 |- (ph <-> E.wE.v((w = x /\ v = y) /\ [v / y][w / x]ph))
19 excom 1044 . . . . 5 |- (E.zE.wE.v(z = <.x, y>. /\ (z = <.w, v>. /\ [v / y][w / x]ph)) <-> E.wE.zE.v(z = <.x, y>. /\ (z = <.w, v>. /\ [v / y][w / x]ph)))
20 exdistr2 1309 . . . . 5 |- (E.zE.wE.v(z = <.x, y>. /\ (z = <.w, v>. /\ [v / y][w / x]ph)) <-> E.z(z = <.x, y>. /\ E.wE.v(z = <.w, v>. /\ [v / y][w / x]ph)))
21 excom 1044 . . . . . 6 |- (E.zE.v(z = <.x, y>. /\ (z = <.w, v>. /\ [v / y][w / x]ph)) <-> E.vE.z(z = <.x, y>. /\ (z = <.w, v>. /\ [v / y][w / x]ph)))
2221exbii 1049 . . . . 5 |- (E.wE.zE.v(z = <.x, y>. /\ (z = <.w, v>. /\ [v / y][w / x]ph)) <-> E.wE.vE.z(z = <.x, y>. /\ (z = <.w, v>. /\ [v / y][w / x]ph)))
2319, 20, 223bitr3 181 . . . 4 |- (E.z(z = <.x, y>. /\ E.wE.v(z = <.w, v>. /\ [v / y][w / x]ph)) <-> E.wE.vE.z(z = <.x, y>. /\ (z = <.w, v>. /\ [v / y][w / x]ph)))
2417, 18, 233bitr4 183 . . 3 |- (ph <-> E.z(z = <.x, y>. /\ E.wE.v(z = <.w, v>. /\ [v / y][w / x]ph)))
25 ax-17 969 . . . . . . 7 |- (E.y(z = <.x, y>. /\ ph) -> A.wE.y(z = <.x, y>. /\ ph))
26 ax-17 969 . . . . . . . . 9 |- (z = <.w, y>. -> A.x z = <.w, y>.)
27 hbs1 1330 . . . . . . . . 9 |- ([w / x]ph -> A.x[w / x]ph)
2826, 27hban 1007 . . . . . . . 8 |- ((z = <.w, y>. /\ [w / x]ph) -> A.x(z = <.w, y>. /\ [w / x]ph))
2928hbex 1004 . . . . . . 7 |- (E.y(z = <.w, y>. /\ [w / x]ph) -> A.xE.y(z = <.w, y>. /\ [w / x]ph))
30 opeq1 2483 . . . . . . . . . 10 |- (x = w -> <.x, y>. = <.w, y>.)
3130eqeq2d 1483 . . . . . . . . 9 |- (x = w -> (z = <.x, y>. <-> z = <.w, y>.))
32 sbequ12 1179 . . . . . . . . 9 |- (x = w -> (ph <-> [w / x]ph))
3331, 32anbi12d 627 . . . . . . . 8 |- (x = w -> ((z = <.x, y>. /\ ph) <-> (z = <.w, y>. /\ [w / x]ph)))
3433exbidv 1277 . . . . . . 7 |- (x = w -> (E.y(z = <.x, y>. /\ ph) <-> E.y(z = <.w, y>. /\ [w / x]ph)))
3525, 29, 34cbvex 1164 . . . . . 6 |- (E.xE.y(z = <.x, y>. /\ ph) <-> E.wE.y(z = <.w, y>. /\ [w / x]ph))
36 ax-17 969 . . . . . . . 8 |- ((z = <.w, y>. /\ [w / x]ph) -> A.v(z = <.w, y>. /\ [w / x]ph))
37 ax-17 969 . . . . . . . . 9 |- (z = <.w, v>. -> A.y z = <.w, v>.)
38 hbs1 1330 . . . . . . . . 9 |- ([v / y][w / x]ph -> A.y[v / y][w / x]ph)
3937, 38hban 1007 . . . . . . . 8 |- ((z = <.w, v>. /\ [v / y][w / x]ph) -> A.y(z = <.w, v>. /\ [v / y][w / x]ph))
40 opeq2 2484 . . . . . . . . . 10 |- (y = v -> <.w, y>. = <.w, v>.)
4140eqeq2d 1483 . . . . . . . . 9 |- (y = v -> (z = <.w, y>. <-> z = <.w, v>.))
42 sbequ12 1179 . . . . . . . . 9 |- (y = v -> ([w / x]ph <-> [v / y][w / x]ph))
4341, 42anbi12d 627 . . . . . . . 8 |- (y = v -> ((z = <.w, y>. /\ [w / x]ph) <-> (z = <.w, v>. /\ [v / y][w / x]ph)))
4436, 39, 43cbvex 1164 . . . . . . 7 |- (E.y(z = <.w, y>. /\ [w / x]ph) <-> E.v(z = <.w, v>. /\ [v / y][w / x]ph))
4544exbii 1049 . . . . . 6 |- (E.wE.y(z = <.w, y>. /\ [w / x]ph) <-> E.wE.v(z = <.w, v>. /\ [v / y][w / x]ph))
4635, 45bitr 173 . . . . 5 |- (E.xE.y(z = <.x, y>. /\ ph) <-> E.wE.v(z = <.w, v>. /\ [v / y][w / x]ph))
4746anbi2i 480 . . . 4 |- ((z = <.x, y>. /\ E.xE.y(z = <.x, y>. /\ ph)) <-> (z = <.x, y>. /\ E.wE.v(z = <.w, v>. /\ [v / y][w / x]ph)))
4847exbii 1049 . . 3 |- (E.z(z = <.x, y>. /\ E.xE.y(z = <.x, y>. /\ ph)) <-> E.z(z = <.x, y>. /\ E.wE.v(z = <.w, v>. /\ [v / y][w / x]ph)))
4924, 48bitr4 176 . 2 |- (ph <-> E.z(z = <.x, y>. /\ E.xE.y(z = <.x, y>. /\ ph