Proof of Theorem powm2modprm
| Step | Hyp | Ref
 | Expression | 
| 1 |   | simpll 527 | 
. . . 4
⊢ (((𝑃 ∈ ℙ ∧ 𝐴 ∈ ℤ) ∧ 𝑃 ∥ (𝐴 − 1)) → 𝑃 ∈ ℙ) | 
| 2 |   | simpr 110 | 
. . . . 5
⊢ ((𝑃 ∈ ℙ ∧ 𝐴 ∈ ℤ) → 𝐴 ∈
ℤ) | 
| 3 | 2 | adantr 276 | 
. . . 4
⊢ (((𝑃 ∈ ℙ ∧ 𝐴 ∈ ℤ) ∧ 𝑃 ∥ (𝐴 − 1)) → 𝐴 ∈ ℤ) | 
| 4 |   | m1dvdsndvds 12417 | 
. . . . 5
⊢ ((𝑃 ∈ ℙ ∧ 𝐴 ∈ ℤ) → (𝑃 ∥ (𝐴 − 1) → ¬ 𝑃 ∥ 𝐴)) | 
| 5 | 4 | imp 124 | 
. . . 4
⊢ (((𝑃 ∈ ℙ ∧ 𝐴 ∈ ℤ) ∧ 𝑃 ∥ (𝐴 − 1)) → ¬ 𝑃 ∥ 𝐴) | 
| 6 |   | eqid 2196 | 
. . . . . 6
⊢ ((𝐴↑(𝑃 − 2)) mod 𝑃) = ((𝐴↑(𝑃 − 2)) mod 𝑃) | 
| 7 | 6 | modprminv 12418 | 
. . . . 5
⊢ ((𝑃 ∈ ℙ ∧ 𝐴 ∈ ℤ ∧ ¬
𝑃 ∥ 𝐴) → (((𝐴↑(𝑃 − 2)) mod 𝑃) ∈ (1...(𝑃 − 1)) ∧ ((𝐴 · ((𝐴↑(𝑃 − 2)) mod 𝑃)) mod 𝑃) = 1)) | 
| 8 |   | simpr 110 | 
. . . . . 6
⊢ ((((𝐴↑(𝑃 − 2)) mod 𝑃) ∈ (1...(𝑃 − 1)) ∧ ((𝐴 · ((𝐴↑(𝑃 − 2)) mod 𝑃)) mod 𝑃) = 1) → ((𝐴 · ((𝐴↑(𝑃 − 2)) mod 𝑃)) mod 𝑃) = 1) | 
| 9 | 8 | eqcomd 2202 | 
. . . . 5
⊢ ((((𝐴↑(𝑃 − 2)) mod 𝑃) ∈ (1...(𝑃 − 1)) ∧ ((𝐴 · ((𝐴↑(𝑃 − 2)) mod 𝑃)) mod 𝑃) = 1) → 1 = ((𝐴 · ((𝐴↑(𝑃 − 2)) mod 𝑃)) mod 𝑃)) | 
| 10 | 7, 9 | syl 14 | 
. . . 4
⊢ ((𝑃 ∈ ℙ ∧ 𝐴 ∈ ℤ ∧ ¬
𝑃 ∥ 𝐴) → 1 = ((𝐴 · ((𝐴↑(𝑃 − 2)) mod 𝑃)) mod 𝑃)) | 
| 11 | 1, 3, 5, 10 | syl3anc 1249 | 
. . 3
⊢ (((𝑃 ∈ ℙ ∧ 𝐴 ∈ ℤ) ∧ 𝑃 ∥ (𝐴 − 1)) → 1 = ((𝐴 · ((𝐴↑(𝑃 − 2)) mod 𝑃)) mod 𝑃)) | 
| 12 |   | modprm1div 12416 | 
. . . . . . 7
⊢ ((𝑃 ∈ ℙ ∧ 𝐴 ∈ ℤ) → ((𝐴 mod 𝑃) = 1 ↔ 𝑃 ∥ (𝐴 − 1))) | 
| 13 | 12 | biimpar 297 | 
. . . . . 6
⊢ (((𝑃 ∈ ℙ ∧ 𝐴 ∈ ℤ) ∧ 𝑃 ∥ (𝐴 − 1)) → (𝐴 mod 𝑃) = 1) | 
| 14 | 13 | oveq1d 5937 | 
. . . . 5
⊢ (((𝑃 ∈ ℙ ∧ 𝐴 ∈ ℤ) ∧ 𝑃 ∥ (𝐴 − 1)) → ((𝐴 mod 𝑃) · ((𝐴↑(𝑃 − 2)) mod 𝑃)) = (1 · ((𝐴↑(𝑃 − 2)) mod 𝑃))) | 
| 15 | 14 | oveq1d 5937 | 
. . . 4
⊢ (((𝑃 ∈ ℙ ∧ 𝐴 ∈ ℤ) ∧ 𝑃 ∥ (𝐴 − 1)) → (((𝐴 mod 𝑃) · ((𝐴↑(𝑃 − 2)) mod 𝑃)) mod 𝑃) = ((1 · ((𝐴↑(𝑃 − 2)) mod 𝑃)) mod 𝑃)) | 
| 16 |   | zq 9700 | 
. . . . . 6
⊢ (𝐴 ∈ ℤ → 𝐴 ∈
ℚ) | 
| 17 | 3, 16 | syl 14 | 
. . . . 5
⊢ (((𝑃 ∈ ℙ ∧ 𝐴 ∈ ℤ) ∧ 𝑃 ∥ (𝐴 − 1)) → 𝐴 ∈ ℚ) | 
| 18 |   | prmm2nn0 12301 | 
. . . . . . . . . 10
⊢ (𝑃 ∈ ℙ → (𝑃 − 2) ∈
ℕ0) | 
| 19 | 18 | anim1ci 341 | 
. . . . . . . . 9
⊢ ((𝑃 ∈ ℙ ∧ 𝐴 ∈ ℤ) → (𝐴 ∈ ℤ ∧ (𝑃 − 2) ∈
ℕ0)) | 
| 20 | 19 | adantr 276 | 
. . . . . . . 8
⊢ (((𝑃 ∈ ℙ ∧ 𝐴 ∈ ℤ) ∧ 𝑃 ∥ (𝐴 − 1)) → (𝐴 ∈ ℤ ∧ (𝑃 − 2) ∈
ℕ0)) | 
| 21 |   | zexpcl 10646 | 
. . . . . . . 8
⊢ ((𝐴 ∈ ℤ ∧ (𝑃 − 2) ∈
ℕ0) → (𝐴↑(𝑃 − 2)) ∈
ℤ) | 
| 22 | 20, 21 | syl 14 | 
. . . . . . 7
⊢ (((𝑃 ∈ ℙ ∧ 𝐴 ∈ ℤ) ∧ 𝑃 ∥ (𝐴 − 1)) → (𝐴↑(𝑃 − 2)) ∈
ℤ) | 
| 23 |   | prmnn 12278 | 
. . . . . . . . 9
⊢ (𝑃 ∈ ℙ → 𝑃 ∈
ℕ) | 
| 24 | 23 | adantr 276 | 
. . . . . . . 8
⊢ ((𝑃 ∈ ℙ ∧ 𝐴 ∈ ℤ) → 𝑃 ∈
ℕ) | 
| 25 | 24 | adantr 276 | 
. . . . . . 7
⊢ (((𝑃 ∈ ℙ ∧ 𝐴 ∈ ℤ) ∧ 𝑃 ∥ (𝐴 − 1)) → 𝑃 ∈ ℕ) | 
| 26 | 22, 25 | zmodcld 10437 | 
. . . . . 6
⊢ (((𝑃 ∈ ℙ ∧ 𝐴 ∈ ℤ) ∧ 𝑃 ∥ (𝐴 − 1)) → ((𝐴↑(𝑃 − 2)) mod 𝑃) ∈
ℕ0) | 
| 27 | 26 | nn0zd 9446 | 
. . . . 5
⊢ (((𝑃 ∈ ℙ ∧ 𝐴 ∈ ℤ) ∧ 𝑃 ∥ (𝐴 − 1)) → ((𝐴↑(𝑃 − 2)) mod 𝑃) ∈ ℤ) | 
| 28 | 25 | nnzd 9447 | 
. . . . . 6
⊢ (((𝑃 ∈ ℙ ∧ 𝐴 ∈ ℤ) ∧ 𝑃 ∥ (𝐴 − 1)) → 𝑃 ∈ ℤ) | 
| 29 |   | zq 9700 | 
. . . . . 6
⊢ (𝑃 ∈ ℤ → 𝑃 ∈
ℚ) | 
| 30 | 28, 29 | syl 14 | 
. . . . 5
⊢ (((𝑃 ∈ ℙ ∧ 𝐴 ∈ ℤ) ∧ 𝑃 ∥ (𝐴 − 1)) → 𝑃 ∈ ℚ) | 
| 31 | 25 | nngt0d 9034 | 
. . . . 5
⊢ (((𝑃 ∈ ℙ ∧ 𝐴 ∈ ℤ) ∧ 𝑃 ∥ (𝐴 − 1)) → 0 < 𝑃) | 
| 32 |   | modqmulmod 10481 | 
. . . . 5
⊢ (((𝐴 ∈ ℚ ∧ ((𝐴↑(𝑃 − 2)) mod 𝑃) ∈ ℤ) ∧ (𝑃 ∈ ℚ ∧ 0 < 𝑃)) → (((𝐴 mod 𝑃) · ((𝐴↑(𝑃 − 2)) mod 𝑃)) mod 𝑃) = ((𝐴 · ((𝐴↑(𝑃 − 2)) mod 𝑃)) mod 𝑃)) | 
| 33 | 17, 27, 30, 31, 32 | syl22anc 1250 | 
. . . 4
⊢ (((𝑃 ∈ ℙ ∧ 𝐴 ∈ ℤ) ∧ 𝑃 ∥ (𝐴 − 1)) → (((𝐴 mod 𝑃) · ((𝐴↑(𝑃 − 2)) mod 𝑃)) mod 𝑃) = ((𝐴 · ((𝐴↑(𝑃 − 2)) mod 𝑃)) mod 𝑃)) | 
| 34 | 19, 21 | syl 14 | 
. . . . . . . . . 10
⊢ ((𝑃 ∈ ℙ ∧ 𝐴 ∈ ℤ) → (𝐴↑(𝑃 − 2)) ∈
ℤ) | 
| 35 | 34, 24 | zmodcld 10437 | 
. . . . . . . . 9
⊢ ((𝑃 ∈ ℙ ∧ 𝐴 ∈ ℤ) → ((𝐴↑(𝑃 − 2)) mod 𝑃) ∈
ℕ0) | 
| 36 | 35 | nn0cnd 9304 | 
. . . . . . . 8
⊢ ((𝑃 ∈ ℙ ∧ 𝐴 ∈ ℤ) → ((𝐴↑(𝑃 − 2)) mod 𝑃) ∈ ℂ) | 
| 37 | 36 | mulid2d 8045 | 
. . . . . . 7
⊢ ((𝑃 ∈ ℙ ∧ 𝐴 ∈ ℤ) → (1
· ((𝐴↑(𝑃 − 2)) mod 𝑃)) = ((𝐴↑(𝑃 − 2)) mod 𝑃)) | 
| 38 | 37 | oveq1d 5937 | 
. . . . . 6
⊢ ((𝑃 ∈ ℙ ∧ 𝐴 ∈ ℤ) → ((1
· ((𝐴↑(𝑃 − 2)) mod 𝑃)) mod 𝑃) = (((𝐴↑(𝑃 − 2)) mod 𝑃) mod 𝑃)) | 
| 39 | 38 | adantr 276 | 
. . . . 5
⊢ (((𝑃 ∈ ℙ ∧ 𝐴 ∈ ℤ) ∧ 𝑃 ∥ (𝐴 − 1)) → ((1 · ((𝐴↑(𝑃 − 2)) mod 𝑃)) mod 𝑃) = (((𝐴↑(𝑃 − 2)) mod 𝑃) mod 𝑃)) | 
| 40 |   | zq 9700 | 
. . . . . . 7
⊢ ((𝐴↑(𝑃 − 2)) ∈ ℤ → (𝐴↑(𝑃 − 2)) ∈
ℚ) | 
| 41 | 22, 40 | syl 14 | 
. . . . . 6
⊢ (((𝑃 ∈ ℙ ∧ 𝐴 ∈ ℤ) ∧ 𝑃 ∥ (𝐴 − 1)) → (𝐴↑(𝑃 − 2)) ∈
ℚ) | 
| 42 |   | modqabs2 10450 | 
. . . . . 6
⊢ (((𝐴↑(𝑃 − 2)) ∈ ℚ ∧ 𝑃 ∈ ℚ ∧ 0 <
𝑃) → (((𝐴↑(𝑃 − 2)) mod 𝑃) mod 𝑃) = ((𝐴↑(𝑃 − 2)) mod 𝑃)) | 
| 43 | 41, 30, 31, 42 | syl3anc 1249 | 
. . . . 5
⊢ (((𝑃 ∈ ℙ ∧ 𝐴 ∈ ℤ) ∧ 𝑃 ∥ (𝐴 − 1)) → (((𝐴↑(𝑃 − 2)) mod 𝑃) mod 𝑃) = ((𝐴↑(𝑃 − 2)) mod 𝑃)) | 
| 44 | 39, 43 | eqtrd 2229 | 
. . . 4
⊢ (((𝑃 ∈ ℙ ∧ 𝐴 ∈ ℤ) ∧ 𝑃 ∥ (𝐴 − 1)) → ((1 · ((𝐴↑(𝑃 − 2)) mod 𝑃)) mod 𝑃) = ((𝐴↑(𝑃 − 2)) mod 𝑃)) | 
| 45 | 15, 33, 44 | 3eqtr3d 2237 | 
. . 3
⊢ (((𝑃 ∈ ℙ ∧ 𝐴 ∈ ℤ) ∧ 𝑃 ∥ (𝐴 − 1)) → ((𝐴 · ((𝐴↑(𝑃 − 2)) mod 𝑃)) mod 𝑃) = ((𝐴↑(𝑃 − 2)) mod 𝑃)) | 
| 46 | 11, 45 | eqtr2d 2230 | 
. 2
⊢ (((𝑃 ∈ ℙ ∧ 𝐴 ∈ ℤ) ∧ 𝑃 ∥ (𝐴 − 1)) → ((𝐴↑(𝑃 − 2)) mod 𝑃) = 1) | 
| 47 | 46 | ex 115 | 
1
⊢ ((𝑃 ∈ ℙ ∧ 𝐴 ∈ ℤ) → (𝑃 ∥ (𝐴 − 1) → ((𝐴↑(𝑃 − 2)) mod 𝑃) = 1)) |