Metamath Proof Explorer


Theorem prmdiv

Description: Show an explicit expression for the modular inverse of A mod P . (Contributed by Mario Carneiro, 24-Jan-2015)

Ref Expression
Hypothesis prmdiv.1 ⊢ R = A P − 2 mod P
Assertion prmdiv ⊢ P ∈ ℙ ∧ A ∈ ℤ ∧ ¬ P ∥ A → R ∈ 1 … P − 1 ∧ P ∥ A ⁢ R − 1

Proof

Step Hyp Ref Expression
1 prmdiv.1 ⊢ R = A P − 2 mod P
2 nprmdvds1 ⊢ P ∈ ℙ → ¬ P ∥ 1
3 2 3ad2ant1 ⊢ P ∈ ℙ ∧ A ∈ ℤ ∧ ¬ P ∥ A → ¬ P ∥ 1
4 prmz ⊢ P ∈ ℙ → P ∈ ℤ
5 4 3ad2ant1 ⊢ P ∈ ℙ ∧ A ∈ ℤ ∧ ¬ P ∥ A → P ∈ ℤ
6 simp2 ⊢ P ∈ ℙ ∧ A ∈ ℤ ∧ ¬ P ∥ A → A ∈ ℤ
7 phiprm ⊢ P ∈ ℙ → ϕ ⁡ P = P − 1
8 7 3ad2ant1 ⊢ P ∈ ℙ ∧ A ∈ ℤ ∧ ¬ P ∥ A → ϕ ⁡ P = P − 1
9 prmnn ⊢ P ∈ ℙ → P ∈ ℕ
10 9 3ad2ant1 ⊢ P ∈ ℙ ∧ A ∈ ℤ ∧ ¬ P ∥ A → P ∈ ℕ
11 nnm1nn0 ⊢ P ∈ ℕ → P − 1 ∈ ℕ 0
12 10 11 syl ⊢ P ∈ ℙ ∧ A ∈ ℤ ∧ ¬ P ∥ A → P − 1 ∈ ℕ 0
13 8 12 eqeltrd ⊢ P ∈ ℙ ∧ A ∈ ℤ ∧ ¬ P ∥ A → ϕ ⁡ P ∈ ℕ 0
14 zexpcl ⊢ A ∈ ℤ ∧ ϕ ⁡ P ∈ ℕ 0 → A ϕ ⁡ P ∈ ℤ
15 6 13 14 syl2anc ⊢ P ∈ ℙ ∧ A ∈ ℤ ∧ ¬ P ∥ A → A ϕ ⁡ P ∈ ℤ
16 1z ⊢ 1 ∈ ℤ
17 zsubcl ⊢ A ϕ ⁡ P ∈ ℤ ∧ 1 ∈ ℤ → A ϕ ⁡ P − 1 ∈ ℤ
18 15 16 17 sylancl ⊢ P ∈ ℙ ∧ A ∈ ℤ ∧ ¬ P ∥ A → A ϕ ⁡ P − 1 ∈ ℤ
19 prmuz2 ⊢ P ∈ ℙ → P ∈ ℤ ≥ 2
20 19 3ad2ant1 ⊢ P ∈ ℙ ∧ A ∈ ℤ ∧ ¬ P ∥ A → P ∈ ℤ ≥ 2
21 uznn0sub ⊢ P ∈ ℤ ≥ 2 → P − 2 ∈ ℕ 0
22 20 21 syl ⊢ P ∈ ℙ ∧ A ∈ ℤ ∧ ¬ P ∥ A → P − 2 ∈ ℕ 0
23 zexpcl ⊢ A ∈ ℤ ∧ P − 2 ∈ ℕ 0 → A P − 2 ∈ ℤ
24 6 22 23 syl2anc ⊢ P ∈ ℙ ∧ A ∈ ℤ ∧ ¬ P ∥ A → A P − 2 ∈ ℤ
25 24 zred ⊢ P ∈ ℙ ∧ A ∈ ℤ ∧ ¬ P ∥ A → A P − 2 ∈ ℝ
26 25 10 nndivred ⊢ P ∈ ℙ ∧ A ∈ ℤ ∧ ¬ P ∥ A → A P − 2 P ∈ ℝ
27 26 flcld ⊢ P ∈ ℙ ∧ A ∈ ℤ ∧ ¬ P ∥ A → A P − 2 P ∈ ℤ
28 6 27 zmulcld ⊢ P ∈ ℙ ∧ A ∈ ℤ ∧ ¬ P ∥ A → A ⁢ A P − 2 P ∈ ℤ
29 5 28 zmulcld ⊢ P ∈ ℙ ∧ A ∈ ℤ ∧ ¬ P ∥ A → P ⁢ A ⁢ A P − 2 P ∈ ℤ
30 6 5 gcdcomd ⊢ P ∈ ℙ ∧ A ∈ ℤ ∧ ¬ P ∥ A → A gcd P = P gcd A
31 coprm ⊢ P ∈ ℙ ∧ A ∈ ℤ → ¬ P ∥ A ↔ P gcd A = 1
32 31 biimp3a ⊢ P ∈ ℙ ∧ A ∈ ℤ ∧ ¬ P ∥ A → P gcd A = 1
33 30 32 eqtrd ⊢ P ∈ ℙ ∧ A ∈ ℤ ∧ ¬ P ∥ A → A gcd P = 1
34 eulerth ⊢ P ∈ ℕ ∧ A ∈ ℤ ∧ A gcd P = 1 → A ϕ ⁡ P mod P = 1 mod P
35 10 6 33 34 syl3anc ⊢ P ∈ ℙ ∧ A ∈ ℤ ∧ ¬ P ∥ A → A ϕ ⁡ P mod P = 1 mod P
36 1zzd ⊢ P ∈ ℙ ∧ A ∈ ℤ ∧ ¬ P ∥ A → 1 ∈ ℤ
37 moddvds ⊢ P ∈ ℕ ∧ A ϕ ⁡ P ∈ ℤ ∧ 1 ∈ ℤ → A ϕ ⁡ P mod P = 1 mod P ↔ P ∥ A ϕ ⁡ P − 1
38 10 15 36 37 syl3anc ⊢ P ∈ ℙ ∧ A ∈ ℤ ∧ ¬ P ∥ A → A ϕ ⁡ P mod P = 1 mod P ↔ P ∥ A ϕ ⁡ P − 1
39 35 38 mpbid ⊢ P ∈ ℙ ∧ A ∈ ℤ ∧ ¬ P ∥ A → P ∥ A ϕ ⁡ P − 1
40 dvdsmul1 ⊢ P ∈ ℤ ∧ A ⁢ A P − 2 P ∈ ℤ → P ∥ P ⁢ A ⁢ A P − 2 P
41 5 28 40 syl2anc ⊢ P ∈ ℙ ∧ A ∈ ℤ ∧ ¬ P ∥ A → P ∥ P ⁢ A ⁢ A P − 2 P
42 5 18 29 39 41 dvds2subd ⊢ P ∈ ℙ ∧ A ∈ ℤ ∧ ¬ P ∥ A → P ∥ A ϕ ⁡ P - 1 - P ⁢ A ⁢ A P − 2 P
43 6 zcnd ⊢ P ∈ ℙ ∧ A ∈ ℤ ∧ ¬ P ∥ A → A ∈ ℂ
44 24 zcnd ⊢ P ∈ ℙ ∧ A ∈ ℤ ∧ ¬ P ∥ A → A P − 2 ∈ ℂ
45 5 27 zmulcld ⊢ P ∈ ℙ ∧ A ∈ ℤ ∧ ¬ P ∥ A → P ⁢ A P − 2 P ∈ ℤ
46 45 zcnd ⊢ P ∈ ℙ ∧ A ∈ ℤ ∧ ¬ P ∥ A → P ⁢ A P − 2 P ∈ ℂ
47 43 44 46 subdid ⊢ P ∈ ℙ ∧ A ∈ ℤ ∧ ¬ P ∥ A → A ⁢ A P − 2 − P ⁢ A P − 2 P = A ⁢ A P − 2 − A ⁢ P ⁢ A P − 2 P
48 10 nnrpd ⊢ P ∈ ℙ ∧ A ∈ ℤ ∧ ¬ P ∥ A → P ∈ ℝ +
49 modval ⊢ A P − 2 ∈ ℝ ∧ P ∈ ℝ + → A P − 2 mod P = A P − 2 − P ⁢ A P − 2 P
50 25 48 49 syl2anc ⊢ P ∈ ℙ ∧ A ∈ ℤ ∧ ¬ P ∥ A → A P − 2 mod P = A P − 2 − P ⁢ A P − 2 P
51 1 50 eqtrid ⊢ P ∈ ℙ ∧ A ∈ ℤ ∧ ¬ P ∥ A → R = A P − 2 − P ⁢ A P − 2 P
52 51 oveq2d ⊢ P ∈ ℙ ∧ A ∈ ℤ ∧ ¬ P ∥ A → A ⁢ R = A ⁢ A P − 2 − P ⁢ A P − 2 P
53 2m1e1 ⊢ 2 − 1 = 1
54 53 oveq2i ⊢ P − 2 − 1 = P − 1
55 8 54 eqtr4di ⊢ P ∈ ℙ ∧ A ∈ ℤ ∧ ¬ P ∥ A → ϕ ⁡ P = P − 2 − 1
56 10 nncnd ⊢ P ∈ ℙ ∧ A ∈ ℤ ∧ ¬ P ∥ A → P ∈ ℂ
57 2cnd ⊢ P ∈ ℙ ∧ A ∈ ℤ ∧ ¬ P ∥ A → 2 ∈ ℂ
58 1cnd ⊢ P ∈ ℙ ∧ A ∈ ℤ ∧ ¬ P ∥ A → 1 ∈ ℂ
59 56 57 58 subsubd ⊢ P ∈ ℙ ∧ A ∈ ℤ ∧ ¬ P ∥ A → P − 2 − 1 = P - 2 + 1
60 55 59 eqtrd ⊢ P ∈ ℙ ∧ A ∈ ℤ ∧ ¬ P ∥ A → ϕ ⁡ P = P - 2 + 1
61 60 oveq2d ⊢ P ∈ ℙ ∧ A ∈ ℤ ∧ ¬ P ∥ A → A ϕ ⁡ P = A P - 2 + 1
62 43 22 expp1d ⊢ P ∈ ℙ ∧ A ∈ ℤ ∧ ¬ P ∥ A → A P - 2 + 1 = A P − 2 ⁢ A
63 44 43 mulcomd ⊢ P ∈ ℙ ∧ A ∈ ℤ ∧ ¬ P ∥ A → A P − 2 ⁢ A = A ⁢ A P − 2
64 61 62 63 3eqtrd ⊢ P ∈ ℙ ∧ A ∈ ℤ ∧ ¬ P ∥ A → A ϕ ⁡ P = A ⁢ A P − 2
65 27 zcnd ⊢ P ∈ ℙ ∧ A ∈ ℤ ∧ ¬ P ∥ A → A P − 2 P ∈ ℂ
66 56 43 65 mul12d ⊢ P ∈ ℙ ∧ A ∈ ℤ ∧ ¬ P ∥ A → P ⁢ A ⁢ A P − 2 P = A ⁢ P ⁢ A P − 2 P
67 64 66 oveq12d ⊢ P ∈ ℙ ∧ A ∈ ℤ ∧ ¬ P ∥ A → A ϕ ⁡ P − P ⁢ A ⁢ A P − 2 P = A ⁢ A P − 2 − A ⁢ P ⁢ A P − 2 P
68 47 52 67 3eqtr4d ⊢ P ∈ ℙ ∧ A ∈ ℤ ∧ ¬ P ∥ A → A ⁢ R = A ϕ ⁡ P − P ⁢ A ⁢ A P − 2 P
69 68 oveq1d ⊢ P ∈ ℙ ∧ A ∈ ℤ ∧ ¬ P ∥ A → A ⁢ R − 1 = A ϕ ⁡ P - P ⁢ A ⁢ A P − 2 P - 1
70 15 zcnd ⊢ P ∈ ℙ ∧ A ∈ ℤ ∧ ¬ P ∥ A → A ϕ ⁡ P ∈ ℂ
71 29 zcnd ⊢ P ∈ ℙ ∧ A ∈ ℤ ∧ ¬ P ∥ A → P ⁢ A ⁢ A P − 2 P ∈ ℂ
72 70 71 58 sub32d ⊢ P ∈ ℙ ∧ A ∈ ℤ ∧ ¬ P ∥ A → A ϕ ⁡ P - P ⁢ A ⁢ A P − 2 P - 1 = A ϕ ⁡ P - 1 - P ⁢ A ⁢ A P − 2 P
73 69 72 eqtrd ⊢ P ∈ ℙ ∧ A ∈ ℤ ∧ ¬ P ∥ A → A ⁢ R − 1 = A ϕ ⁡ P - 1 - P ⁢ A ⁢ A P − 2 P
74 42 73 breqtrrd ⊢ P ∈ ℙ ∧ A ∈ ℤ ∧ ¬ P ∥ A → P ∥ A ⁢ R − 1
75 oveq2 ⊢ R = 0 → A ⁢ R = A ⋅ 0
76 75 oveq1d ⊢ R = 0 → A ⁢ R − 1 = A ⋅ 0 − 1
77 76 breq2d ⊢ R = 0 → P ∥ A ⁢ R − 1 ↔ P ∥ A ⋅ 0 − 1
78 74 77 syl5ibcom ⊢ P ∈ ℙ ∧ A ∈ ℤ ∧ ¬ P ∥ A → R = 0 → P ∥ A ⋅ 0 − 1
79 43 mul01d ⊢ P ∈ ℙ ∧ A ∈ ℤ ∧ ¬ P ∥ A → A ⋅ 0 = 0
80 79 oveq1d ⊢ P ∈ ℙ ∧ A ∈ ℤ ∧ ¬ P ∥ A → A ⋅ 0 − 1 = 0 − 1
81 df-neg ⊢ − 1 = 0 − 1
82 80 81 eqtr4di ⊢ P ∈ ℙ ∧ A ∈ ℤ ∧ ¬ P ∥ A → A ⋅ 0 − 1 = − 1
83 82 breq2d ⊢ P ∈ ℙ ∧ A ∈ ℤ ∧ ¬ P ∥ A → P ∥ A ⋅ 0 − 1 ↔ P ∥ -1
84 dvdsnegb ⊢ P ∈ ℤ ∧ 1 ∈ ℤ → P ∥ 1 ↔ P ∥ -1
85 5 16 84 sylancl ⊢ P ∈ ℙ ∧ A ∈ ℤ ∧ ¬ P ∥ A → P ∥ 1 ↔ P ∥ -1
86 83 85 bitr4d ⊢ P ∈ ℙ ∧ A ∈ ℤ ∧ ¬ P ∥ A → P ∥ A ⋅ 0 − 1 ↔ P ∥ 1
87 78 86 sylibd ⊢ P ∈ ℙ ∧ A ∈ ℤ ∧ ¬ P ∥ A → R = 0 → P ∥ 1
88 3 87 mtod ⊢ P ∈ ℙ ∧ A ∈ ℤ ∧ ¬ P ∥ A → ¬ R = 0
89 zmodfz ⊢ A P − 2 ∈ ℤ ∧ P ∈ ℕ → A P − 2 mod P ∈ 0 … P − 1
90 24 10 89 syl2anc ⊢ P ∈ ℙ ∧ A ∈ ℤ ∧ ¬ P ∥ A → A P − 2 mod P ∈ 0 … P − 1
91 1 90 eqeltrid ⊢ P ∈ ℙ ∧ A ∈ ℤ ∧ ¬ P ∥ A → R ∈ 0 … P − 1
92 nn0uz ⊢ ℕ 0 = ℤ ≥ 0
93 12 92 eleqtrdi ⊢ P ∈ ℙ ∧ A ∈ ℤ ∧ ¬ P ∥ A → P − 1 ∈ ℤ ≥ 0
94 elfzp12 ⊢ P − 1 ∈ ℤ ≥ 0 → R ∈ 0 … P − 1 ↔ R = 0 ∨ R ∈ 0 + 1 … P − 1
95 93 94 syl ⊢ P ∈ ℙ ∧ A ∈ ℤ ∧ ¬ P ∥ A → R ∈ 0 … P − 1 ↔ R = 0 ∨ R ∈ 0 + 1 … P − 1
96 91 95 mpbid ⊢ P ∈ ℙ ∧ A ∈ ℤ ∧ ¬ P ∥ A → R = 0 ∨ R ∈ 0 + 1 … P − 1
97 96 ord ⊢ P ∈ ℙ ∧ A ∈ ℤ ∧ ¬ P ∥ A → ¬ R = 0 → R ∈ 0 + 1 … P − 1
98 88 97 mpd ⊢ P ∈ ℙ ∧ A ∈ ℤ ∧ ¬ P ∥ A → R ∈ 0 + 1 … P − 1
99 1e0p1 ⊢ 1 = 0 + 1
100 99 oveq1i ⊢ 1 … P − 1 = 0 + 1 … P − 1
101 98 100 eleqtrrdi ⊢ P ∈ ℙ ∧ A ∈ ℤ ∧ ¬ P ∥ A → R ∈ 1 … P − 1
102 101 74 jca ⊢ P ∈ ℙ ∧ A ∈ ℤ ∧ ¬ P ∥ A → R ∈ 1 … P − 1 ∧ P ∥ A ⁢ R − 1