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

Theorem dfoprab5 4115
Description: A way to define an operation class abstraction without using existential quantifiers.
Hypothesis
Ref Expression
dfoprab5.1 |- (<.x, y>. = w -> C = D)
Assertion
Ref Expression
dfoprab5 |- {<.<.x, y>., z>. | ((x e. A /\ y e. B) /\ z = C)} = {<.w, z>. | (w e. (A X. B) /\ z = D)}
Distinct variable groups:   x,w,y,A   w,B,x,y   w,C   x,D,y   z,w,x,y

Proof of Theorem dfoprab5
StepHypRef Expression
1 dfoprab3 4114 . 2 |- {<.<.x, y>., z>. | ((x e. A /\ y e. B) /\ z = C)} = {<.w, z>. | (w e. (V X. V) /\ [(1st`
w) / x][(2nd`
w) / y]((x e. A /\ y e. B) /\ z = C))}
2 anass 439 . . . 4 |- (((w e. (V X. V) /\ ((1st` w) e. A /\ (2nd` w) e. B)) /\ z = D) <-> (w e. (V X. V) /\ (((1st` w) e. A /\ (2nd` w) e. B) /\ z = D)))
3 elxp7 4103 . . . . 5 |- (w e. (A X. B) <-> (w e. (V X. V) /\ ((1st` w) e. A /\ (2nd` w) e. B)))
43anbi1i 481 . . . 4 |- ((w e. (A X. B) /\ z = D) <-> ((w e. (V X. V) /\ ((1st` w) e. A /\ (2nd` w) e. B)) /\ z = D))
5 fvex 3732 . . . . . . . . . 10 |- (1st` w) e. V
6 sbcang 1971 . . . . . . . . . 10 |- ((1st` w) e. V -> ([(1st` w) / x](x e. A /\ (2nd`
w) e. B) <-> ([(1st` w) / x]x e. A /\ [(1st` w) / x](2nd` w) e. B)))
75, 6ax-mp 7 . . . . . . . . 9 |- ([(1st` w) / x](x e. A /\ (2nd`
w) e. B) <-> ([(1st` w) / x]x e. A /\ [(1st` w) / x](2nd` w) e. B))
8 sbcel1gv 1980 . . . . . . . . . . 11 |- ((1st` w) e. V -> ([(1st` w) / x]x e. A <-> (1st` w) e. A))
95, 8ax-mp 7 . . . . . . . . . 10 |- ([(1st` w) / x]x e. A <-> (1st` w) e. A)
10 ax-17 971 . . . . . . . . . . . 12 |- ((2nd` w) e. B -> A.x(2nd` w) e. B)
1110sbcgf 1986 . . . . . . . . . . 11 |- ((1st` w) e. V -> ([(1st` w) / x](2nd` w) e. B <-> (2nd` w) e. B))
125, 11ax-mp 7 . . . . . . . . . 10 |- ([(1st` w) / x](2nd` w) e. B <-> (2nd` w) e. B)
139, 12anbi12i 482 . . . . . . . . 9 |- (([(1st`
w) / x]x e. A /\ [(1st`
w) / x](2nd` w) e. B) <-> ((1st`
w) e. A /\ (2nd`
w) e. B))
147, 13bitr 173 . . . . . . . 8 |- ([(1st` w) / x](x e. A /\ (2nd`
w) e. B) <-> ((1st` w) e. A /\ (2nd` w) e. B))
1514a1i 8 . . . . . . 7 |- (w e. (V X. V) -> ([(1st`
w) / x](x e. A /\ (2nd`
w) e. B) <-> ((1st` w) e. A /\ (2nd` w) e. B)))
16 visset 1813 . . . . . . . . . . . . . 14 |- y e. V
1716eqop 4104 . . . . . . . . . . . . 13 |- (w e. (V X. V) -> (w = <.x, y>. <-> ((1st` w) = x /\ (2nd` w) = y)))
18 eqcom 1477 . . . . . . . . . . . . 13 |- (<.x, y>. = w <-> w = <.x, y>.)
19 eqcom 1477 . . . . . . . . . . . . . 14 |- (x = (1st`
w) <-> (1st` w) = x)
20 eqcom 1477 . . . . . . . . . . . . . 14 |- (y = (2nd`
w) <-> (2nd` w) = y)
2119, 20anbi12i 482 . . . . . . . . . . . . 13 |- ((x = (1st` w) /\ y = (2nd` w)) <-> ((1st`
w) = x /\ (2nd`
w) = y))
2217, 18, 213bitr4g 555 . . . . . . . . . . . 12 |- (w e. (V X. V) -> (<.x, y>. = w <-> (x = (1st` w) /\ y = (2nd` w))))
23 dfoprab5.1 . . . . . . . . . . . 12 |- (<.x, y>. = w -> C = D)
2422, 23syl6bir 215 . . . . . . . . . . 11 |- (w e. (V X. V) -> ((x = (1st` w) /\ y = (2nd` w)) -> C = D))
252419.21aivv 1287 . . . . . . . . . 10 |- (w e. (V X. V) -> A.xA.y((x = (1st` w) /\ y = (2nd` w)) -> C = D))
26 fvex 3732 . . . . . . . . . . 11 |- (2nd` w) e. V
275, 26csbie2t 2033 . . . . . . . . . 10 |- (A.xA.y((x = (1st` w) /\ y = (2nd` w)) -> C = D) -> [_(1st` w) / x]_[_(2nd` w) / y]_C = D)
2825, 27syl 10 . . . . . . . . 9 |- (w e. (V X. V) -> [_(1st` w) / x]_[_(2nd` w) / y]_C = D)
2928eqeq2d 1486 . . . . . . . 8 |- (w e. (V X. V) -> (z = [_(1st` w) / x]_[_(2nd` w) / y]_C <-> z = D))
30 sbceq2dig 2016 . . . . . . . . 9 |- ((1st` w) e. V -> ([(1st` w) / x]z = [_(2nd` w) / y]_C <-> z = [_(1st` w) / x]_[_(2nd`
w) / y]_C))
315, 30ax-mp 7 . . . . . . . 8 |- ([(1st` w) / x]z = [_(2nd` w) / y]_C <-> z = [_(1st` w) / x]_[_(2nd`
w) / y]_C)
3229, 31syl5bb 532 . . . . . . 7 |- (w e. (V X. V) -> ([(1st`
w) / x]z = [_(2nd` w) / y]_C <-> z = D))
3315, 32anbi12d 628 . . . . . 6 |- (w e. (V X. V) -> (([(1st` w) / x](x e. A /\ (2nd` w) e. B) /\ [(1st` w) / x]z = [_(2nd` w) / y]_C) <-> (((1st`
w) e. A /\ (2nd`
w) e. B) /\ z = D)))
34 sbcang 1971 . . . . . . . . . . 11 |- ((2nd` w) e. V -> ([(2nd` w) / y]((x e. A /\ y e. B) /\ z = C) <-> ([(2nd` w) / y](x e. A /\ y e. B) /\ [(2nd` w) / y]z = C)))
3526, 34ax-mp 7 . . . . . . . . . 10 |- ([(2nd` w) / y]((x e. A /\ y e. B) /\ z = C) <-> ([(2nd` w) / y](x e. A /\ y e. B) /\ [(2nd` w) / y]z = C))
36 sbcang 1971 . . . . . . . . . . . . 13 |- ((2nd` w) e. V -> ([(2nd` w) / y](x e. A /\ y e. B) <-> ([(2nd` w) / y]x e. A /\ [(2nd` w) / y]y e. B)))
3726, 36ax-mp 7 . . . . . . . . . . . 12 |- ([(2nd` w) / y](x e. A /\ y e. B) <-> ([(2nd` w) / y]x e. A /\ [(2nd` w) / y]y e. B))
38 ax-17 971 . . . . . . . . . . . . . . 15 |- (x e. A -> A.y x e. A)
3938sbcgf 1986 . . . . . . . . . . . . . 14 |- ((2nd` w) e. V -> ([(2nd` w) / y]x e. A <-> x e. A))
4026, 39ax-mp 7 . . . . . . . . . . . . 13 |- ([(2nd` w) / y]x e. A <-> x e. A)
41 sbcel1gv 1980 . . . . . . . . . . . . . 14 |- ((2nd` w) e. V -> ([(2nd` w) / y]y e. B <-> (2nd` w) e. B))
4226, 41ax-mp 7 . . . . . . . . . . . . 13 |- ([(2nd` w) / y]y e. B <-> (2nd` w) e. B)
4340, 42anbi12i 482 . . . . . . . . . . . 12 |- (([(2nd`
w) / y]x e. A /\ [(2nd`
w) / y]y e. B) <-> (x e. A /\ (2nd`
w) e. B))
4437, 43bitr 173 . . . . . . . . . . 11 |- ([(2nd` w) / y](x e. A /\ y e. B) <-> (x e. A /\ (2nd` w) e. B))
45 sbceq2dig 2016 . . . . . . . . . . . 12 |- ((2nd` w) e. V -> ([(2nd` w) / y]z = C <-> z = [_(2nd` w) / y]_C))
4626, 45ax-mp 7 . . . . . . . . . . 11 |- ([(2nd` w) / y]z = C <-> z = [_(2nd` w) / y]_C)
4744, 46anbi12i 482 . . . . . . . . . 10 |- (([(2nd`
w) / y](x e. A /\ y e. B) /\ [(2nd` w) / y]z = C) <-> ((x e. A /\ (2nd`
w) e. B) /\ z = [_(2nd` w) / y]_C))
4835, 47bitr 173 . . . . . . . . 9 |- ([(2nd` w) / y]((x e. A /\ y e. B) /\ z = C) <-> ((x e. A /\ (2nd` w) e. B) /\ z = [_(2nd` w) / y]_C))
4948sbcbii 1978 . . . . . . . 8 |- ((1st` w) e. V -> ([(1st` w) / x][(2nd` w) / y]((x e. A /\ y e. B) /\ z = C) <-> [(1st`