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

Theorem znnen 7445
Description: The set of integers and the set of natural numbers are equinumerous. Exercise 1 of [Gleason] p. 140.
Assertion
Ref Expression
znnen |- ZZ ~~ NN

Proof of Theorem znnen
StepHypRef Expression
1 zex 6091 . . . 4 |- ZZ e. V
2 elnn0z 6094 . . . . . . . 8 |- (x e. NN0 <-> (x e. ZZ /\ 0 <_ x))
3 2nn0 6062 . . . . . . . . 9 |- 2 e. NN0
4 nn0mulclt 6070 . . . . . . . . 9 |- ((2 e. NN0 /\ x e. NN0) -> (2 x. x) e. NN0)
53, 4mpan 693 . . . . . . . 8 |- (x e. NN0 -> (2 x. x) e. NN0)
62, 5sylbir 201 . . . . . . 7 |- ((x e. ZZ /\ 0 <_ x) -> (2 x. x) e. NN0)
7 iftrue 2356 . . . . . . . . 9 |- (0 <_ x -> if(0 <_ x, (2 x. x), ((-u2 x. x) + 1)) = (2 x. x))
87eleq1d 1532 . . . . . . . 8 |- (0 <_ x -> (if(0 <_ x, (2 x. x), ((-u2 x. x) + 1)) e. NN0 <-> (2 x. x) e. NN0))
98adantl 388 . . . . . . 7 |- ((x e. ZZ /\ 0 <_ x) -> (if(0 <_ x, (2 x. x), ((-u2 x. x) + 1)) e. NN0 <-> (2 x. x) e. NN0))
106, 9mpbird 196 . . . . . 6 |- ((x e. ZZ /\ 0 <_ x) -> if(0 <_ x, (2 x. x), ((-u2 x. x) + 1)) e. NN0)
11 2z 6107 . . . . . . . . . . . 12 |- 2 e. ZZ
12 znegclt 6110 . . . . . . . . . . . 12 |- (2 e. ZZ -> -u2 e. ZZ)
1311, 12ax-mp 7 . . . . . . . . . . 11 |- -u2 e. ZZ
14 zmulclt 6127 . . . . . . . . . . 11 |- ((-u2 e. ZZ /\ x e. ZZ) -> (-u2 x. x) e. ZZ)
1513, 14mpan 693 . . . . . . . . . 10 |- (x e. ZZ -> (-u2 x. x) e. ZZ)
1615adantr 389 . . . . . . . . 9 |- ((x e. ZZ /\ -. 0 <_ x) -> (-u2 x. x) e. ZZ)
17 zret 6086 . . . . . . . . . . 11 |- (x e. ZZ -> x e. RR)
18 renegclt 5409 . . . . . . . . . . . . . 14 |- (x e. RR -> -ux e. RR)
19 2pos 5936 . . . . . . . . . . . . . . 15 |- 0 < 2
20 2re 5926 . . . . . . . . . . . . . . . 16 |- 2 e. RR
21 axmulgt0 5478 . . . . . . . . . . . . . . . 16 |- ((2 e. RR /\ -ux e. RR) -> ((0 < 2 /\ 0 < -ux) -> 0 < (2 x. -ux)))
2220, 21mpan 693 . . . . . . . . . . . . . . 15 |- (-ux e. RR -> ((0 < 2 /\ 0 < -ux) -> 0 < (2 x. -ux)))
2319, 22mpani 696 . . . . . . . . . . . . . 14 |- (-ux e. RR -> (0 < -ux -> 0 < (2 x. -ux)))
2418, 23syl 10 . . . . . . . . . . . . 13 |- (x e. RR -> (0 < -ux -> 0 < (2 x. -ux)))
25 0re 5412 . . . . . . . . . . . . . . 15 |- 0 e. RR
26 ltnlet 5483 . . . . . . . . . . . . . . 15 |- ((x e. RR /\ 0 e. RR) -> (x < 0 <-> -. 0 <_ x))
2725, 26mpan2 694 . . . . . . . . . . . . . 14 |- (x e. RR -> (x < 0 <-> -. 0 <_ x))
28 lt0neg1t 5641 . . . . . . . . . . . . . 14 |- (x e. RR -> (x < 0 <-> 0 < -ux))
2927, 28bitr3d 528 . . . . . . . . . . . . 13 |- (x e. RR -> (-. 0 <_ x <-> 0 < -ux))
30 recnt 5285 . . . . . . . . . . . . . . 15 |- (x e. RR -> x e. CC)
31 2cn 5927 . . . . . . . . . . . . . . . 16 |- 2 e. CC
32 mulneg12t 5425 . . . . . . . . . . . . . . . 16 |- ((2 e. CC /\ x e. CC) -> (-u2 x. x) = (2 x. -ux))
3331, 32mpan 693 . . . . . . . . . . . . . . 15 |- (x e. CC -> (-u2 x. x) = (2 x. -ux))
3430, 33syl 10 . . . . . . . . . . . . . 14 |- (x e. RR -> (-u2 x. x) = (2 x. -ux))
3534breq2d 2620 . . . . . . . . . . . . 13 |- (x e. RR -> (0 < (-u2 x. x) <-> 0 < (2 x. -ux)))
3624, 29, 353imtr4d 541 . . . . . . . . . . . 12 |- (x e. RR -> (-. 0 <_ x -> 0 < (-u2 x. x)))
3720renegcl 5388 . . . . . . . . . . . . . 14 |- -u2 e. RR
38 axmulrcl 5246 . . . . . . . . . . . . . 14 |- ((-u2 e. RR /\ x e. RR) -> (-u2 x. x) e. RR)
3937, 38mpan 693 . . . . . . . . . . . . 13 |- (x e. RR -> (-u2 x. x) e. RR)
40 ltlet 5493 . . . . . . . . . . . . . 14 |- ((0 e. RR /\ (-u2 x. x) e. RR) -> (0 < (-u2 x. x) -> 0 <_ (-u2 x. x)))
4125, 40mpan 693 . . . . . . . . . . . . 13 |- ((-u2 x. x) e. RR -> (0 < (-u2 x. x) -> 0 <_ (-u2 x. x)))
4239, 41syl 10 . . . . . . . . . . . 12 |- (x e. RR -> (0 < (-u2 x. x) -> 0 <_ (-u2 x. x)))
4336, 42syld 27 . . . . . . . . . . 11 |- (x e. RR -> (-. 0 <_ x -> 0 <_ (-u2 x. x)))
4417, 43syl 10 . . . . . . . . . 10 |- (x e. ZZ -> (-. 0 <_ x -> 0 <_ (-u2 x. x)))
4544imp 350 . . . . . . . . 9 |- ((x e. ZZ /\ -. 0 <_ x) -> 0 <_ (-u2 x. x))
4616, 45jca 288 . . . . . . . 8 |- ((x e. ZZ /\ -. 0 <_ x) -> ((-u2 x. x) e. ZZ /\ 0 <_ (-u2 x. x)))
47 elnn0z 6094 . . . . . . . . 9 |- ((-u2 x. x) e. NN0 <-> ((-u2 x. x) e. ZZ /\ 0 <_ (-u2 x. x)))
4847biimpr 152 . . . . . . . 8 |- (((-u2 x. x) e. ZZ /\ 0 <_ (-u2 x. x)) -> (-u2 x. x) e. NN0)
49 peano2nn0 6071 . . . . . . . 8 |- ((-u2 x. x) e. NN0 -> ((-u2 x. x) + 1) e. NN0)
5046, 48, 493syl 20 . . . . . . 7 |- ((x e. ZZ /\ -. 0 <_ x) -> ((-u2 x. x) + 1) e. NN0)
51 iffalse 2357 . . . . . . . . 9 |- (-. 0 <_ x -> if(0 <_ x, (2 x. x), ((-u2 x. x) + 1)) = ((-u2 x. x) + 1))
5251eleq1d 1532 . . . . . . . 8 |- (-. 0 <_ x -> (if(0 <_ x, (2 x. x), ((-u2 x. x) + 1)) e. NN0 <-> ((-u2 x. x) + 1) e. NN0))
5352adantl 388 . . . . . . 7 |- ((x e. ZZ /\ -. 0 <_ x) -> (if(0 <_ x, (2 x. x), ((-u2 x. x) + 1)) e. NN0 <-> ((-u2 x. x) + 1) e. NN0))
5450, 53mpbird 196 . . . . . 6 |- ((x e. ZZ /\ -. 0 <_ x) -> if(0 <_ x, (2 x. x), ((-u2 x. x) + 1)) e. NN0)
5510, 54pm2.61dan 476 . . . . 5 |- (x e. ZZ -> if(0 <_ x, (2 x. x), ((-u2 x. x) + 1)) e. NN0)
56 iftrue 2356 . . . . . . . . . . 11 |- (0 <_ y -> if(0 <_ y, (2 x. y), ((-u2 x. y) + 1)) = (2 x. y))
577, 56eqeqan12d 1482 . . . . . . . . . 10 |- ((0 <_ x /\ 0 <_ y) -> (if(0 <_ x, (2 x. x), ((-u2 x. x) + 1)) = if(0 <_ y, (2 x. y), ((-u2 x. y) + 1)) <-> (2 x. x) = (2 x. y)))
58 2ne0 5937 . . . . . . . . . . . . 13 |- 2 =/= 0
5958mulcant2 5660 . . . . . . . . . . . 12 |- ((2 e. CC /\ x e. CC /\ y e. CC) -> ((2 x. x) = (2 x. y) <-> x = y))
6031, 59mp3an1 900 . . . . . . . . . . 11 |- ((x e. CC /\ y e. CC) -> ((2 x. x) = (2 x. y) <-> x = y))
61 zcnt 6087 . . . . . . . . . . 11 |- (x e. ZZ -> x e. CC)
62 zcnt 6087 . . . . . . . . . . 11 |- (y e. ZZ -> y e. CC)
6360, 61, 62syl2an 454 . . . . . . . . . 10 |- ((x e. ZZ /\ y e. ZZ) -> ((2 x. x) = (2 x. y) <-> x = y))
6457, 63sylan9bb 538 . . . . . . . . 9 |- (((0 <_ x /\ 0 <_ y) /\ (x e. ZZ /\ y e. ZZ)) -> (if(0 <_ x, (2 x. x), ((-u2 x. x) + 1)) = if(0 <_ y, (2 x. y), ((-u2 x. y) + 1)) <-> x = y))
6564bicomd 519 . . . . . . . 8 |- (((0 <_ x /\ 0 <_ y) /\ (x e. ZZ /\ y e. ZZ)) -> (x = y <-> if(0 <_ x, (2 x. x), ((-u2 x. x) + 1)) = if(0 <_ y, (2 x. y), ((-u2 x. y) + 1))))
6665ex 373 . . . . . . 7 |- ((0 <_ x /\ 0 <_ y) -> ((x e. ZZ /\ y e. ZZ) -> (x = y <-> if(0 <_ x, (2 x. x), ((-u2 x. x) + 1)) = if(0 <_ y, (2 x. y), ((-u2 x. y) + 1)))))
67 znnenlem 7443 . . . . . . . . 9 |- (((0 <_ x /\ -. 0 <_ y) /\ (x e. ZZ /\ y e. ZZ)) -> (x = y <-> (2 x. x) = ((-u2 x. y) + 1)))
68 iffalse 2357 . . . . . . . . . . 11 |- (-. 0 <_ y -> if(0 <_ y, (2 x. y), ((-u2 x. y) + 1)) = ((-u2 x. y) + 1))
697, 68eqeqan12d 1482 . . . . . . . . . 10 |- ((0 <_ x /\ -. 0 <_ y) -> (if(0 <_ x, (2 x. x), ((-u2 x. x) + 1)) = if(0 <_ y, (2 x. y), ((-u2 x. y) + 1)) <-> (2 x. x) = ((-u2 x. y) + 1)))
7069adantr 389 . . . . . . . . 9 |- (((0 <_ x /\ -. 0 <_ y) /\ (x e. ZZ /\ y e. ZZ)) -> (if(0 <_ x, (2 x. x), ((-u2 x. x) + 1)) = if(0 <_ y, (2 x. y), ((-u2 x. y) + 1)) <-> (2 x. x) = ((-u2 x. y) + 1)))
7167, 70bitr4d 529 . . . . . .