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

Theorem xpnnen 7441
Description: The cross product of the set of natural numbers with itself is equinumerous to the set of natural numbers. The key idea is to use nn0opth2t 6598 to show that the mapping from natural numbers z and w to ((z + w)^2) + w is one-to-one.
Assertion
Ref Expression
xpnnen |- (NN X. NN) ~~ NN

Proof of Theorem xpnnen
StepHypRef Expression
1 nnex 5881 . . . 4 |- NN e. V
21, 1xpex 3250 . . 3 |- (NN X. NN) e. V
3 elxp5 3440 . . . . 5 |- (x e. (NN X. NN) <-> (x = <.|^||^|x, U.ran { x}>. /\ (|^||^|x e. NN /\ U.ran { x} e. NN)))
4 nnaddclt 5888 . . . . . . 7 |- ((((|^||^|x + U.ran { x})^2) e. NN /\ U.ran { x} e. NN) -> (((|^||^|x + U.ran { x})^2) + U.ran { x}) e. NN)
5 nnaddclt 5888 . . . . . . . 8 |- ((|^||^|x e. NN /\ U.ran { x} e. NN) -> (|^||^|x + U.ran { x}) e. NN)
6 2nn0 6062 . . . . . . . . 9 |- 2 e. NN0
7 nnexpclt 6508 . . . . . . . . 9 |- (((|^||^|x + U.ran { x}) e. NN /\ 2 e. NN0) -> ((|^||^|x + U.ran { x})^2) e. NN)
86, 7mpan2 694 . . . . . . . 8 |- ((|^||^|x + U.ran { x}) e. NN -> ((|^||^|x + U.ran { x})^2) e. NN)
95, 8syl 10 . . . . . . 7 |- ((|^||^|x e. NN /\ U.ran { x} e. NN) -> ((|^||^|x + U.ran { x})^2) e. NN)
10 pm3.27 323 . . . . . . 7 |- ((|^||^|x e. NN /\ U.ran { x} e. NN) -> U.ran { x} e. NN)
114, 9, 10sylanc 471 . . . . . 6 |- ((|^||^|x e. NN /\ U.ran { x} e. NN) -> (((|^||^|x + U.ran { x})^2) + U.ran { x}) e. NN)
1211adantl 388 . . . . 5 |- ((x = <.|^||^|x, U.ran { x}>. /\ (|^||^|x e. NN /\ U.ran { x} e. NN)) -> (((|^||^|x + U.ran { x})^2) + U.ran { x}) e. NN)
133, 12sylbi 199 . . . 4 |- (x e. (NN X. NN) -> (((|^||^|x + U.ran { x})^2) + U.ran { x}) e. NN)
14 inteq 2526 . . . . . . . . . . . . . . . . . 18 |- (x = <.z, w>. -> |^|x = |^|<.z, w>.)
1514inteqd 2528 . . . . . . . . . . . . . . . . 17 |- (x = <.z, w>. -> |^||^|x = |^||^|<.z, w>.)
16 visset 1804 . . . . . . . . . . . . . . . . . 18 |- z e. V
1716op1stb 2903 . . . . . . . . . . . . . . . . 17 |- |^||^|<.z, w>. = z
1815, 17syl6eq 1515 . . . . . . . . . . . . . . . 16 |- (x = <.z, w>. -> |^||^|x = z)
19 sneq 2407 . . . . . . . . . . . . . . . . . . 19 |- (x = <.z, w>. -> {x} = {<.z, w>.})
2019rneqd 3330 . . . . . . . . . . . . . . . . . 18 |- (x = <.z, w>. -> ran { x} = ran {<.z, w>.})
2120unieqd 2502 . . . . . . . . . . . . . . . . 17 |- (x = <.z, w>. -> U.ran { x} = U.ran {<.z, w>.})
22 visset 1804 . . . . . . . . . . . . . . . . . 18 |- w e. V
2316, 22op2nda 3438 . . . . . . . . . . . . . . . . 17 |- U.ran {<.z, w>.} = w
2421, 23syl6eq 1515 . . . . . . . . . . . . . . . 16 |- (x = <.z, w>. -> U.ran { x} = w)
2518, 24opreq12d 3963 . . . . . . . . . . . . . . 15 |- (x = <.z, w>. -> (|^||^|x + U.ran { x}) = (z + w))
2625opreq1d 3960 . . . . . . . . . . . . . 14 |- (x = <.z, w>. -> ((|^||^|x + U.ran { x})^2) = ((z + w)^2))
2726, 24opreq12d 3963 . . . . . . . . . . . . 13 |- (x = <.z, w>. -> (((|^||^|x + U.ran { x})^2) + U.ran { x}) = (((z + w)^2) + w))
28 inteq 2526 . . . . . . . . . . . . . . . . . 18 |- (y = <.v, u>. -> |^|y = |^|<.v, u>.)
2928inteqd 2528 . . . . . . . . . . . . . . . . 17 |- (y = <.v, u>. -> |^||^|y = |^||^|<.v, u>.)
30 visset 1804 . . . . . . . . . . . . . . . . . 18 |- v e. V
3130op1stb 2903 . . . . . . . . . . . . . . . . 17 |- |^||^|<.v, u>. = v
3229, 31syl6eq 1515 . . . . . . . . . . . . . . . 16 |- (y = <.v, u>. -> |^||^|y = v)
33 sneq 2407 . . . . . . . . . . . . . . . . . . 19 |- (y = <.v, u>. -> {y} = {<.v, u>.})
3433rneqd 3330 . . . . . . . . . . . . . . . . . 18 |- (y = <.v, u>. -> ran { y} = ran {<.v, u>.})
3534unieqd 2502 . . . . . . . . . . . . . . . . 17 |- (y = <.v, u>. -> U.ran { y} = U.ran {<.v, u>.})
36 visset 1804 . . . . . . . . . . . . . . . . . 18 |- u e. V
3730, 36op2nda 3438 . . . . . . . . . . . . . . . . 17 |- U.ran {<.v, u>.} = u
3835, 37syl6eq 1515 . . . . . . . . . . . . . . . 16 |- (y = <.v, u>. -> U.ran { y} = u)
3932, 38opreq12d 3963 . . . . . . . . . . . . . . 15 |- (y = <.v, u>. -> (|^||^|y + U.ran { y}) = (v + u))
4039opreq1d 3960 . . . . . . . . . . . . . 14 |- (y = <.v, u>. -> ((|^||^|y + U.ran { y})^2) = ((v + u)^2))
4140, 38opreq12d 3963 . . . . . . . . . . . . 13 |- (y = <.v, u>. -> (((|^||^|y + U.ran { y})^2) + U.ran { y}) = (((v + u)^2) + u))
4227, 41eqeqan12d 1482 . . . . . . . . . . . 12 |- ((x = <.z, w>. /\ y = <.v, u>.) -> ((((|^||^|x + U.ran { x})^2) + U.ran { x}) = (((|^||^|y + U.ran { y})^2) + U.ran { y}) <-> (((z + w)^2) + w) = (((v + u)^2) + u)))
43 nn0opth2t 6598 . . . . . . . . . . . . 13 |- (((z e. NN0 /\ w e. NN0) /\ (v e. NN0 /\ u e. NN0)) -> ((((z + w)^2) + w) = (((v + u)^2) + u) <-> (z = v /\ w = u)))
44 nnnn0t 6053 . . . . . . . . . . . . . 14 |- (z e. NN -> z e. NN0)
45 nnnn0t 6053 . . . . . . . . . . . . . 14 |- (w e. NN -> w e. NN0)
4644, 45anim12i 333 . . . . . . . . . . . . 13 |- ((z e. NN /\ w e. NN) -> (z e. NN0 /\ w e. NN0))
47 nnnn0t 6053 . . . . . . . . . . . . . 14 |- (v e. NN -> v e. NN0)
48 nnnn0t 6053 . . . . . . . . . . . . . 14 |- (u e. NN -> u e. NN0)
4947, 48anim12i 333 . . . . . . . . . . . . 13 |- ((v e. NN /\ u e. NN) -> (v e. NN0 /\ u e. NN0))
5043, 46, 49syl2an 454 . . . . . . . . . . . 12 |- (((z e. NN /\ w e. NN) /\ (v e. NN /\ u e. NN)) -> ((((z + w)^2) + w) = (((v + u)^2) + u) <-> (z = v /\ w = u)))
5142, 50sylan9bbr 539 . . . . . . . . . . 11 |- ((((z e. NN /\ w e. NN) /\ (v e. NN /\ u e. NN)) /\ (x = <.z, w>. /\ y = <.v, u>.)) -> ((((|^||^|x + U.ran { x})^2) + U.ran { x}) = (((|^||^|y + U.ran { y})^2) + U.ran { y}) <-> (z = v /\ w = u)))
52 eqeq12 1479 . . . . . . . . . . . . 13 |- ((x = <.z, w>. /\ y = <.v, u>.) -> (x = y <-> <.z, w>. = <.v, u>.))
5316, 22, 36opth 2777 . . . . . . . . . . . . 13 |- (<.z, w>. = <.v, u>. <-> (z = v /\ w = u))
5452, 53syl6bb 534 . . . . . . . . . . . 12 |- ((x = <.z, w>. /\ y = <.v, u>.) -> (x = y <-> (z = v /\ w = u)))
5554adantl 388 . . . . . . . . . . 11 |- ((((z e. NN /\ w e. NN) /\ (v e. NN /\ u e. NN)) /\ (x = <.z, w>. /\ y = <.v, u>.)) -> (x = y <-> (z = v /\ w = u)))
5651, 55bitr4d 529 . . . . . . . . . 10 |- ((((z e. NN /\ w e. NN) /\ (v e. NN /\ u e. NN)) /\ (x = <.z, w>. /\ y = <.v, u>.)) -> ((((|^||^|x + U.ran { x})^2) + U.ran { x}) = (((|^||^|y + U.ran { y})^2) + U.ran { y}) <-> x = y))
5756exp43 384 . . . . . . . . 9 |- ((z e. NN /\ w e. NN) -> ((v e. NN /\ u e. NN) -> (x = <.z, w>. -> (y = <.v, u>. -> ((((|^||^|x + U.ran { x})^2) + U.ran { x}) = (((|^||^|y + U.ran { y})^2) + U.ran { y}) <-> x = y)))))
5857com23 32 . . . . . . . 8 |- ((z e. NN /\ w e. NN) -> (x = <.z, w>. -> ((v e. NN /\ u e. NN) -> (y = <.v, u>. -> ((((|^||^|x + U.ran { x})^2) + U.ran { x}) = (((|^||^|y + U.ran { y})^2) + U.ran { y}) <-> x = y)))))
5958r19.23aivv 1740 . . . . . . 7 |- (E.z e. NN E.w e. NN x = <.z, w>. -> ((v e. NN /\ u e. NN) -> (y = <.v, u>. -> ((((|^||^|x + U.ran { x})^2) + U.ran { x}) = (((|^||^|y + U.ran { y})^2) + U.ran { y}) <->