Metamath Proof Explorer


Theorem wilthlem1

Description: The only elements that are equal to their own inverses in the multiplicative group of nonzero elements in ZZ / P ZZ are 1 and -u 1 == P - 1 . (Note that from prmdiveq , ( N ^ ( P - 2 ) ) mod P is the modular inverse of N in ZZ / P ZZ . (Contributed by Mario Carneiro, 24-Jan-2015)

Ref Expression
Assertion wilthlem1 ⊢ P ∈ ℙ ∧ N ∈ 1 … P − 1 → N = N P − 2 mod P ↔ N = 1 ∨ N = P − 1

Proof

Step Hyp Ref Expression
1 elfzelz ⊢ N ∈ 1 … P − 1 → N ∈ ℤ
2 1 adantl ⊢ P ∈ ℙ ∧ N ∈ 1 … P − 1 → N ∈ ℤ
3 peano2zm ⊢ N ∈ ℤ → N − 1 ∈ ℤ
4 2 3 syl ⊢ P ∈ ℙ ∧ N ∈ 1 … P − 1 → N − 1 ∈ ℤ
5 4 zcnd ⊢ P ∈ ℙ ∧ N ∈ 1 … P − 1 → N − 1 ∈ ℂ
6 2 peano2zd ⊢ P ∈ ℙ ∧ N ∈ 1 … P − 1 → N + 1 ∈ ℤ
7 6 zcnd ⊢ P ∈ ℙ ∧ N ∈ 1 … P − 1 → N + 1 ∈ ℂ
8 5 7 mulcomd ⊢ P ∈ ℙ ∧ N ∈ 1 … P − 1 → N − 1 ⁢ N + 1 = N + 1 ⁢ N − 1
9 2 zcnd ⊢ P ∈ ℙ ∧ N ∈ 1 … P − 1 → N ∈ ℂ
10 ax-1cn ⊢ 1 ∈ ℂ
11 subsq ⊢ N ∈ ℂ ∧ 1 ∈ ℂ → N 2 − 1 2 = N + 1 ⁢ N − 1
12 9 10 11 sylancl ⊢ P ∈ ℙ ∧ N ∈ 1 … P − 1 → N 2 − 1 2 = N + 1 ⁢ N − 1
13 9 sqvald ⊢ P ∈ ℙ ∧ N ∈ 1 … P − 1 → N 2 = N ⋅ N
14 sq1 ⊢ 1 2 = 1
15 14 a1i ⊢ P ∈ ℙ ∧ N ∈ 1 … P − 1 → 1 2 = 1
16 13 15 oveq12d ⊢ P ∈ ℙ ∧ N ∈ 1 … P − 1 → N 2 − 1 2 = N ⋅ N − 1
17 8 12 16 3eqtr2d ⊢ P ∈ ℙ ∧ N ∈ 1 … P − 1 → N − 1 ⁢ N + 1 = N ⋅ N − 1
18 17 breq2d ⊢ P ∈ ℙ ∧ N ∈ 1 … P − 1 → P ∥ N − 1 ⁢ N + 1 ↔ P ∥ N ⋅ N − 1
19 fz1ssfz0 ⊢ 1 … P − 1 ⊆ 0 … P − 1
20 simpr ⊢ P ∈ ℙ ∧ N ∈ 1 … P − 1 → N ∈ 1 … P − 1
21 19 20 sselid ⊢ P ∈ ℙ ∧ N ∈ 1 … P − 1 → N ∈ 0 … P − 1
22 21 biantrurd ⊢ P ∈ ℙ ∧ N ∈ 1 … P − 1 → P ∥ N ⋅ N − 1 ↔ N ∈ 0 … P − 1 ∧ P ∥ N ⋅ N − 1
23 18 22 bitrd ⊢ P ∈ ℙ ∧ N ∈ 1 … P − 1 → P ∥ N − 1 ⁢ N + 1 ↔ N ∈ 0 … P − 1 ∧ P ∥ N ⋅ N − 1
24 simpl ⊢ P ∈ ℙ ∧ N ∈ 1 … P − 1 → P ∈ ℙ
25 euclemma ⊢ P ∈ ℙ ∧ N − 1 ∈ ℤ ∧ N + 1 ∈ ℤ → P ∥ N − 1 ⁢ N + 1 ↔ P ∥ N − 1 ∨ P ∥ N + 1
26 24 4 6 25 syl3anc ⊢ P ∈ ℙ ∧ N ∈ 1 … P − 1 → P ∥ N − 1 ⁢ N + 1 ↔ P ∥ N − 1 ∨ P ∥ N + 1
27 prmnn ⊢ P ∈ ℙ → P ∈ ℕ
28 fzm1ndvds ⊢ P ∈ ℕ ∧ N ∈ 1 … P − 1 → ¬ P ∥ N
29 27 28 sylan ⊢ P ∈ ℙ ∧ N ∈ 1 … P − 1 → ¬ P ∥ N
30 eqid ⊢ N P − 2 mod P = N P − 2 mod P
31 30 prmdiveq ⊢ P ∈ ℙ ∧ N ∈ ℤ ∧ ¬ P ∥ N → N ∈ 0 … P − 1 ∧ P ∥ N ⋅ N − 1 ↔ N = N P − 2 mod P
32 24 2 29 31 syl3anc ⊢ P ∈ ℙ ∧ N ∈ 1 … P − 1 → N ∈ 0 … P − 1 ∧ P ∥ N ⋅ N − 1 ↔ N = N P − 2 mod P
33 23 26 32 3bitr3rd ⊢ P ∈ ℙ ∧ N ∈ 1 … P − 1 → N = N P − 2 mod P ↔ P ∥ N − 1 ∨ P ∥ N + 1
34 24 27 syl ⊢ P ∈ ℙ ∧ N ∈ 1 … P − 1 → P ∈ ℕ
35 1zzd ⊢ P ∈ ℙ ∧ N ∈ 1 … P − 1 → 1 ∈ ℤ
36 moddvds ⊢ P ∈ ℕ ∧ N ∈ ℤ ∧ 1 ∈ ℤ → N mod P = 1 mod P ↔ P ∥ N − 1
37 34 2 35 36 syl3anc ⊢ P ∈ ℙ ∧ N ∈ 1 … P − 1 → N mod P = 1 mod P ↔ P ∥ N − 1
38 elfznn ⊢ N ∈ 1 … P − 1 → N ∈ ℕ
39 38 adantl ⊢ P ∈ ℙ ∧ N ∈ 1 … P − 1 → N ∈ ℕ
40 39 nnred ⊢ P ∈ ℙ ∧ N ∈ 1 … P − 1 → N ∈ ℝ
41 34 nnrpd ⊢ P ∈ ℙ ∧ N ∈ 1 … P − 1 → P ∈ ℝ +
42 39 nnnn0d ⊢ P ∈ ℙ ∧ N ∈ 1 … P − 1 → N ∈ ℕ 0
43 42 nn0ge0d ⊢ P ∈ ℙ ∧ N ∈ 1 … P − 1 → 0 ≤ N
44 elfzle2 ⊢ N ∈ 1 … P − 1 → N ≤ P − 1
45 44 adantl ⊢ P ∈ ℙ ∧ N ∈ 1 … P − 1 → N ≤ P − 1
46 prmz ⊢ P ∈ ℙ → P ∈ ℤ
47 zltlem1 ⊢ N ∈ ℤ ∧ P ∈ ℤ → N < P ↔ N ≤ P − 1
48 1 46 47 syl2anr ⊢ P ∈ ℙ ∧ N ∈ 1 … P − 1 → N < P ↔ N ≤ P − 1
49 45 48 mpbird ⊢ P ∈ ℙ ∧ N ∈ 1 … P − 1 → N < P
50 modid ⊢ N ∈ ℝ ∧ P ∈ ℝ + ∧ 0 ≤ N ∧ N < P → N mod P = N
51 40 41 43 49 50 syl22anc ⊢ P ∈ ℙ ∧ N ∈ 1 … P − 1 → N mod P = N
52 34 nnred ⊢ P ∈ ℙ ∧ N ∈ 1 … P − 1 → P ∈ ℝ
53 prmuz2 ⊢ P ∈ ℙ → P ∈ ℤ ≥ 2
54 24 53 syl ⊢ P ∈ ℙ ∧ N ∈ 1 … P − 1 → P ∈ ℤ ≥ 2
55 eluz2gt1 ⊢ P ∈ ℤ ≥ 2 → 1 < P
56 54 55 syl ⊢ P ∈ ℙ ∧ N ∈ 1 … P − 1 → 1 < P
57 1mod ⊢ P ∈ ℝ ∧ 1 < P → 1 mod P = 1
58 52 56 57 syl2anc ⊢ P ∈ ℙ ∧ N ∈ 1 … P − 1 → 1 mod P = 1
59 51 58 eqeq12d ⊢ P ∈ ℙ ∧ N ∈ 1 … P − 1 → N mod P = 1 mod P ↔ N = 1
60 37 59 bitr3d ⊢ P ∈ ℙ ∧ N ∈ 1 … P − 1 → P ∥ N − 1 ↔ N = 1
61 35 znegcld ⊢ P ∈ ℙ ∧ N ∈ 1 … P − 1 → − 1 ∈ ℤ
62 moddvds ⊢ P ∈ ℕ ∧ N ∈ ℤ ∧ − 1 ∈ ℤ → N mod P = -1 mod P ↔ P ∥ N − -1
63 34 2 61 62 syl3anc ⊢ P ∈ ℙ ∧ N ∈ 1 … P − 1 → N mod P = -1 mod P ↔ P ∥ N − -1
64 34 nncnd ⊢ P ∈ ℙ ∧ N ∈ 1 … P − 1 → P ∈ ℂ
65 64 mullidd ⊢ P ∈ ℙ ∧ N ∈ 1 … P − 1 → 1 ⁢ P = P
66 65 oveq2d ⊢ P ∈ ℙ ∧ N ∈ 1 … P − 1 → - 1 + 1 ⁢ P = - 1 + P
67 neg1cn ⊢ − 1 ∈ ℂ
68 addcom ⊢ − 1 ∈ ℂ ∧ P ∈ ℂ → - 1 + P = P + -1
69 67 64 68 sylancr ⊢ P ∈ ℙ ∧ N ∈ 1 … P − 1 → - 1 + P = P + -1
70 negsub ⊢ P ∈ ℂ ∧ 1 ∈ ℂ → P + -1 = P − 1
71 64 10 70 sylancl ⊢ P ∈ ℙ ∧ N ∈ 1 … P − 1 → P + -1 = P − 1
72 66 69 71 3eqtrd ⊢ P ∈ ℙ ∧ N ∈ 1 … P − 1 → - 1 + 1 ⁢ P = P − 1
73 72 oveq1d ⊢ P ∈ ℙ ∧ N ∈ 1 … P − 1 → - 1 + 1 ⁢ P mod P = P − 1 mod P
74 neg1rr ⊢ − 1 ∈ ℝ
75 74 a1i ⊢ P ∈ ℙ ∧ N ∈ 1 … P − 1 → − 1 ∈ ℝ
76 modcyc ⊢ − 1 ∈ ℝ ∧ P ∈ ℝ + ∧ 1 ∈ ℤ → - 1 + 1 ⁢ P mod P = -1 mod P
77 75 41 35 76 syl3anc ⊢ P ∈ ℙ ∧ N ∈ 1 … P − 1 → - 1 + 1 ⁢ P mod P = -1 mod P
78 peano2rem ⊢ P ∈ ℝ → P − 1 ∈ ℝ
79 52 78 syl ⊢ P ∈ ℙ ∧ N ∈ 1 … P − 1 → P − 1 ∈ ℝ
80 nnm1nn0 ⊢ P ∈ ℕ → P − 1 ∈ ℕ 0
81 34 80 syl ⊢ P ∈ ℙ ∧ N ∈ 1 … P − 1 → P − 1 ∈ ℕ 0
82 81 nn0ge0d ⊢ P ∈ ℙ ∧ N ∈ 1 … P − 1 → 0 ≤ P − 1
83 52 ltm1d ⊢ P ∈ ℙ ∧ N ∈ 1 … P − 1 → P − 1 < P
84 modid ⊢ P − 1 ∈ ℝ ∧ P ∈ ℝ + ∧ 0 ≤ P − 1 ∧ P − 1 < P → P − 1 mod P = P − 1
85 79 41 82 83 84 syl22anc ⊢ P ∈ ℙ ∧ N ∈ 1 … P − 1 → P − 1 mod P = P − 1
86 73 77 85 3eqtr3d ⊢ P ∈ ℙ ∧ N ∈ 1 … P − 1 → -1 mod P = P − 1
87 51 86 eqeq12d ⊢ P ∈ ℙ ∧ N ∈ 1 … P − 1 → N mod P = -1 mod P ↔ N = P − 1
88 subneg ⊢ N ∈ ℂ ∧ 1 ∈ ℂ → N − -1 = N + 1
89 9 10 88 sylancl ⊢ P ∈ ℙ ∧ N ∈ 1 … P − 1 → N − -1 = N + 1
90 89 breq2d ⊢ P ∈ ℙ ∧ N ∈ 1 … P − 1 → P ∥ N − -1 ↔ P ∥ N + 1
91 63 87 90 3bitr3rd ⊢ P ∈ ℙ ∧ N ∈ 1 … P − 1 → P ∥ N + 1 ↔ N = P − 1
92 60 91 orbi12d ⊢ P ∈ ℙ ∧ N ∈ 1 … P − 1 → P ∥ N − 1 ∨ P ∥ N + 1 ↔ N = 1 ∨ N = P − 1
93 33 92 bitrd ⊢ P ∈ ℙ ∧ N ∈ 1 … P − 1 → N = N P − 2 mod P ↔ N = 1 ∨ N = P − 1