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

Theorem funopg 3622
Description: A Kuratowski ordered pair is a function only if its components are equal.
Assertion
Ref Expression
funopg |- ((B e. C /\ Fun <.A, B>.) -> A = B)

Proof of Theorem funopg
StepHypRef Expression
1 opeq1 2535 . . . . . 6 |- (u = A -> <.u, t>. = <.A, t>.)
2 funeq 3610 . . . . . 6 |- (<.u, t>. = <.A, t>. -> (Fun <.u, t>. <-> Fun <.A, t>.))
31, 2syl 10 . . . . 5 |- (u = A -> (Fun <.u, t>. <-> Fun <.A, t>.))
4 eqeq1 1518 . . . . 5 |- (u = A -> (u = t <-> A = t))
53, 4imbi12d 628 . . . 4 |- (u = A -> ((Fun <.u, t>. -> u = t) <-> (Fun <.A, t>. -> A = t)))
6 opeq2 2536 . . . . . 6 |- (t = B -> <.A, t>. = <.A, B>.)
7 funeq 3610 . . . . . 6 |- (<.A, t>. = <.A, B>. -> (Fun <.A, t>. <-> Fun <.A, B>.))
86, 7syl 10 . . . . 5 |- (t = B -> (Fun <.A, t>. <-> Fun <.A, B>.))
9 eqeq2 1521 . . . . 5 |- (t = B -> (A = t <-> A = B))
108, 9imbi12d 628 . . . 4 |- (t = B -> ((Fun <.A, t>. -> A = t) <-> (Fun <.A, B>. -> A = B)))
11 funrel 3608 . . . . . 6 |- (Fun <.u, t>. -> Rel <.u, t>.)
12 visset 1851 . . . . . . 7 |- u e. V
13 visset 1851 . . . . . . 7 |- t e. V
1412, 13relop 3338 . . . . . 6 |- (Rel <.u, t>. <-> E.xE.y(u = {x} /\ t = {x, y}))
1511, 14sylib 196 . . . . 5 |- (Fun <.u, t>. -> E.xE.y(u = {x} /\ t = {x, y}))
16 dffun4 3603 . . . . . . . . . 10 |- (Fun <.u, t>. <-> (Rel <.u, t>. /\ A.zA.wA.v((<.z, w>. e. <.u, t>. /\ <.z, v>. e. <.u, t>.) -> w = v)))
1716pm3.27bi 324 . . . . . . . . 9 |- (Fun <.u, t>. -> A.zA.wA.v((<.z, w>. e. <.u, t>. /\ <.z, v>. e. <.u, t>.) -> w = v))
18 visset 1851 . . . . . . . . . . 11 |- x e. V
19 visset 1851 . . . . . . . . . . 11 |- y e. V
20 opeq12 2537 . . . . . . . . . . . . . . . 16 |- ((z = x /\ w = x) -> <.z, w>. = <.x, x>.)
21203adant3 802 . . . . . . . . . . . . . . 15 |- ((z = x /\ w = x /\ v = y) -> <.z, w>. = <.x, x>.)
2221eleq1d 1577 . . . . . . . . . . . . . 14 |- ((z = x /\ w = x /\ v = y) -> (<.z, w>. e. <.u, t>. <-> <.x, x>. e. <.u, t>.))
23 opeq12 2537 . . . . . . . . . . . . . . . 16 |- ((z = x /\ v = y) -> <.z, v>. = <.x, y>.)
24233adant2 801 . . . . . . . . . . . . . . 15 |- ((z = x /\ w = x /\ v = y) -> <.z, v>. = <.x, y>.)
2524eleq1d 1577 . . . . . . . . . . . . . 14 |- ((z = x /\ w = x /\ v = y) -> (<.z, v>. e. <.u, t>. <-> <.x, y>. e. <.u, t>.))
2622, 25anbi12d 630 . . . . . . . . . . . . 13 |- ((z = x /\ w = x /\ v = y) -> ((<.z, w>. e. <.u, t>. /\ <.z, v>. e. <.u, t>.) <-> (<.x, x>. e. <.u, t>. /\ <.x, y>. e. <.u, t>.)))
27 eqeq12 1524 . . . . . . . . . . . . . 14 |- ((w = x /\ v = y) -> (w = v <-> x = y))
28273adant1 800 . . . . . . . . . . . . 13 |- ((z = x /\ w = x /\ v = y) -> (w = v <-> x = y))
2926, 28imbi12d 628 . . . . . . . . . . . 12 |- ((z = x /\ w = x /\ v = y) -> (((<.z, w>. e. <.u, t>. /\ <.z, v>. e. <.u, t>.) -> w = v) <-> ((<.x, x>. e. <.u, t>. /\ <.x, y>. e. <.u, t>.) -> x = y)))
3029cla43gv 1905 . . . . . . . . . . 11 |- ((x e. V /\ x e. V /\ y e. V) -> (A.zA.wA.v((<.z, w>. e. <.u, t>. /\ <.z, v>. e. <.u, t>.) -> w = v) -> ((<.x, x>. e. <.u, t>. /\ <.x, y>. e. <.u, t>.) -> x = y)))
3118, 18, 19, 30mp3an 919 . . . . . . . . . 10 |- (A.zA.wA.v((<.z, w>. e. <.u, t>. /\ <.z, v>. e. <.u, t>.) -> w = v) -> ((<.x, x>. e. <.u, t>. /\ <.x, y>. e. <.u, t>.) -> x = y))
32 opex 2835 . . . . . . . . . . . . 13 |- <.x, x>. e. V
3332prid1 2497 . . . . . . . . . . . 12 |- <.x, x>. e. {<.x, x>., <.x, y>.}
34 eleq2 1572 . . . . . . . . . . . 12 |- (<.u, t>. = {<.x, x>., <.x, y>.} -> (<.x, x>. e. <.u, t>. <-> <.x, x>. e. {<.x, x>., <.x, y>.}))
3533, 34mpbiri 192 . . . . . . . . . . 11 |- (<.u, t>. = {<.x, x>., <.x, y>.} -> <.x, x>. e. <.u, t>.)
36 opex 2835 . . . . . . . . . . . . 13 |- <.x, y>. e. V
3736prid2 2498 . . . . . . . . . . . 12 |- <.x, y>. e. {<.x, x>., <.x, y>.}
38 eleq2 1572 . . . . . . . . . . . 12 |- (<.u, t>. = {<.x, x>., <.x, y>.} -> (<.x, y>. e. <.u, t>. <-> <.x, y>. e. {<.x, x>., <.x, y>.}))
3937, 38mpbiri 192 . . . . . . . . . . 11 |- (<.u, t>. = {<.x, x>., <.x, y>.} -> <.x, y>. e. <.u, t>.)
4035, 39jca 286 . . . . . . . . . 10 |- (<.u, t>. = {<.x, x>., <.x, y>.} -> (<.x, x>. e. <.u, t>. /\ <.x, y>. e. <.u, t>.))
4131, 40syl5 21 . . . . . . . . 9 |- (A.zA.wA.v((<.z, w>. e. <.u, t>. /\ <.z, v>. e. <.u, t>.) -> w = v) -> (<.u, t>. = {<.x, x>., <.x, y>.} -> x = y))
4217, 41syl 10 . . . . . . . 8 |- (Fun <.u, t>. -> (<.u, t>. = {<.x, x>., <.x, y>.} -> x = y))
43 zfpair2 2833 . . . . . . . . . 10 |- {x, y} e. V
4412, 13, 43opth 2840 . . . . . . . . 9 |- (<.u, t>. = <.{x}, {x, y}>. <-> (u = {x} /\ t = {x, y}))
45 dfsn2 2465 . . . . . . . . . . . . . 14 |- {x} = {x, x}
46 preq2 2494 . . . . . . . . . . . . . 14 |- ({x} = {x, x} -> {{x}, {x}} = {{x}, {x, x}})
4745, 46ax-mp 7 . . . . . . . . . . . . 13 |- {{x}, {x}} = {{x}, {x, x}}
48 dfsn2 2465 . . . . . . . . . . . . 13 |- {{x}} = {{x}, {x}}
49 df-op 2461 . . . . . . . . . . . . 13 |- <.x, x>. = {{x}, {x, x}}
5047, 48, 493eqtr4ri 1543 . . . . . . . . . . . 12 |- <.x, x>. = {{x}}
51 preq1 2493 . . . . . . . . . . . 12 |- (<.x, x>. = {{x}} -> {<.x, x>., {{x}, {x, y}}} = {{{x}}, {{x}, {x, y}}})
5250, 51ax-mp 7 . . . . . . . . . . 11 |- {<.x, x>., {{x}, {x, y}}} = {{{x}}, {{x}, {x, y}}}
53 df-op 2461 . . . . . . . . . . . 12 |- <.x, y>. = {{x}, {x, y}}
54 preq2 2494 . . . . . . . . . . . 12 |- (<.x, y>. = {{x}, {x, y}} -> {<.x, x>., <.x, y>.} = {<.x, x>., {{x}, {x, y}}})
5553, 54ax-mp 7 . . . . . . . . . . 11 |- {<.x, x>., <.x, y>.} = {<.x, x>., {{x}, {x, y}}}
56 df-op 2461 . . . . . . . . . . 11 |- <.{x}, {x, y}>. = {{{x}}, {{x}, {x, y}}}
5752, 55, 563eqtr4ri 1543 . . . . . . . . . 10 |- <.{x}, {x, y}>. = {<.x, x>., <.x, y>.}
5857eqeq2i 1522 . . . . . . . . 9 |- (<.u, t>. = <.{x}, {x, y}>. <-> <.u, t>. = {<.x, x>., <.x, y>.})
5944, 58bitr3i 173 . . . . . . . 8 |- ((u = {x} /\ t = {x, y}) <-> <.u, t>. = {<.x, x>., <.x, y>.})
6042, 59syl5ib 204 . . . . . . 7 |- (Fun <.u, t>. -> ((u = {x} /\ t = {x, y}) -> x = y))
61 preq2 2494 . . . . . . . . . . . 12 |- (x = y -> {x, x} = {x, y})
6261, 45syl5req 1557 . . . . . . . . . . 11 |- (x = y -> {x, y} = {x})
6362eqeq2d 1523 . . . . . . . . . 10 |- (x =