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

Theorem opabid 2099
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(s):   x,y

Proof of Theorem opabid
StepHypRef Expression
1 clelab 1187 . 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 2098 . . 3 |- {<.x, y>. | ph} = {z | E.xE.y(z = <.x, y>. /\ ph)}
32eleq2i 1153 . 2 |- (<.x, y>. e. {<.x, y>. | ph} <-> <.x, y>. e. {z | E.xE.y(z = <.x, y>. /\ ph)})
4 19.41v 963 . . . . . 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 336 . . . . . . 7 |- (((z = <.x, y>. /\ z = <.w, v>.) /\ [v / y][w / x]ph) <-> (z = <.x, y>. /\ (z = <.w, v>. /\ [v / y][w / x]ph)))
65biex 733 . . . . . 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 cleqcom 1103 . . . . . . . 8 |- (<.x, y>. = <.w, v>. <-> <.w, v>. = <.x, y>.)
8 opex 1893 . . . . . . . . 9 |- <.x, y>. e. V
98eqvinc 1407 . . . . . . . 8 |- (<.x, y>. = <.w, v>. <-> E.z(z = <.x, y>. /\ z = <.w, v>.))
10 visset 1350 . . . . . . . . 9 |- w e. V
11 visset 1350 . . . . . . . . 9 |- v e. V
12 visset 1350 . . . . . . . . 9 |- y e. V
1310, 11, 12opth 1898 . . . . . . . 8 |- (<.w, v>. = <.x, y>. <-> (w = x /\ v = y))
147, 9, 133bitr3 156 . . . . . . 7 |- (E.z(z = <.x, y>. /\ z = <.w, v>.) <-> (w = x /\ v = y))
1514anbi1i 368 . . . . . 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 157 . . . . 5 |- (((w = x /\ v = y) /\ [v / y][w / x]ph) <-> E.z(z = <.x, y>. /\ (z = <.w, v>. /\ [v / y][w / x]ph)))
1716bi2ex 734 . . . 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 995 . . . 4 |- (ph <-> E.wE.v((w = x /\ v = y) /\ [v / y][w / x]ph))
19 excom 728 . . . . 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 969 . . . . 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 728 . . . . . 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)))
2221biex 733 . . . . 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 156 . . . 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 158 . . 3 |- (ph <-> E.z(z = <.x, y>. /\ E.wE.v(z = <.w, v>. /\ [v / y][w / x]ph)))
25 ax-17 925 . . . . . . 7 |- (E.y(z = <.x, y>. /\ ph) -> A.wE.y(z = <.x, y>. /\ ph))
26 ax-17 925 . . . . . . . . 9 |- (z = <.w, y>. -> A.x z = <.w, y>.)
27 hbs1 986 . . . . . . . . 9 |- ([w / x]ph -> A.x[w / x]ph)
2826, 27hban 704 . . . . . . . 8 |- ((z = <.w, y>. /\ [w / x]ph) -> A.x(z = <.w, y>. /\ [w / x]ph))
2928hbex 701 . . . . . . 7 |- (E.y(z = <.w, y>. /\ [w / x]ph) -> A.xE.y(z = <.w, y>. /\ [w / x]ph))
30 opeq1 1876 . . . . . . . . . 10 |- (x = w -> <.x, y>. = <.w, y>.)
3130cleq2d 1112 . . . . . . . . 9 |- (x = w -> (z = <.x, y>. <-> z = <.w, y>.))
32 sbequ12 865 . . . . . . . . 9 |- (x = w -> (ph <-> [w / x]ph))
3331, 32anbi12d 476 . . . . . . . 8 |- (x = w -> ((z = <.x, y>. /\ ph) <-> (z = <.w, y>. /\ [w / x]ph)))
3433biexdv 936 . . . . . . 7 |- (x = w -> (E.y(z = <.x, y>. /\ ph) <-> E.y(z = <.w, y>. /\ [w / x]ph)))
3525, 29, 34cbvex 849 . . . . . 6 |- (E.xE.y(z = <.x, y>. /\ ph) <-> E.wE.y(z = <.w, y>. /\ [w / x]ph))
36 ax-17 925 . . . . . . . 8 |- ((z = <.w, y>. /\ [w / x]ph) -> A.v(z = <.w, y>. /\ [w / x]ph))
37 ax-17 925 . . . . . . . . 9 |- (z = <.w, v>. -> A.y z = <.w, v>.)
38 hbs1 986 . . . . . . . . 9 |- ([v / y][w / x]ph -> A.y[v / y][w / x]ph)
3937, 38hban 704 . . . . . . . 8 |- ((z = <.w, v>. /\ [v / y][w / x]ph) -> A.y(z = <.w, v>. /\ [v / y][w / x]ph))
40 opeq2 1877 . . . . . . . . . 10 |- (y = v -> <.w, y>. = <.w, v>.)
4140cleq2d 1112 . . . . . . . . 9 |- (y = v -> (z = <.w, y>. <-> z = <.w, v>.))
42 sbequ12 865 . . . . . . . . 9 |- (y = v -> ([w / x]ph <-> [v / y][w / x]ph))
4341, 42anbi12d 476 . . . . . . . 8 |- (y = v -> ((z = <.w, y>. /\ [w / x]ph) <-> (z = <.w, v>. /\ [v / y][w / x]ph)))
4436, 39, 43cbvex 849 . . . . . . 7 |- (E.y(z = <.w, y>. /\ [w / x]ph) <-> E.v(z = <.w, v>. /\ [v / y][w / x]ph))
4544biex 733 . . . . . 6 |- (E.wE.y(z = <.w, y>. /\ [w / x]ph) <-> E.wE.v(z = <.w, v>. /\ [v / y][w / x]ph))
4635, 45bitr 151 . . . . 5 |- (E.xE.y(z = <.x, y>. /\ ph) <-> E.wE.v(z = <.w, v>. /\ [v / y][w / x]ph))
4746anbi2i 367 . . . 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)))
4847biex 733 . . 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 154 . 2 |- (ph <-> E.z(z = <.x, y>. /\ E.xE.y(z = <.x, y>. /\ ph)))
501, 3, 493bitr4 158 1 |- (<.x, y>. e. {<.x, y>. | ph} <-> ph)
Colors of variables: wff set class
Syntax hints:   <-> wb 127   /\ wa 196  E.wex 678   = weq 797  [wsb 852  {cab 1090   = wceq 1091   e. wcel 1092  <.cop 1810  {copab 2055
This theorem is referenced by:  opabsb 2114  opelopabg 2115  dmopab