Proof of Theorem modprmn0modprm0
Step | Hyp | Ref
| Expression |
1 | | simpl1 1189 |
. . . 4
⊢ (((𝑃 ∈ ℙ ∧ 𝑁 ∈ ℤ ∧ (𝑁 mod 𝑃) ≠ 0) ∧ 𝐼 ∈ (0..^𝑃)) → 𝑃 ∈ ℙ) |
2 | | prmnn 16307 |
. . . . . . . . 9
⊢ (𝑃 ∈ ℙ → 𝑃 ∈
ℕ) |
3 | | zmodfzo 13542 |
. . . . . . . . 9
⊢ ((𝑁 ∈ ℤ ∧ 𝑃 ∈ ℕ) → (𝑁 mod 𝑃) ∈ (0..^𝑃)) |
4 | 2, 3 | sylan2 592 |
. . . . . . . 8
⊢ ((𝑁 ∈ ℤ ∧ 𝑃 ∈ ℙ) → (𝑁 mod 𝑃) ∈ (0..^𝑃)) |
5 | 4 | ancoms 458 |
. . . . . . 7
⊢ ((𝑃 ∈ ℙ ∧ 𝑁 ∈ ℤ) → (𝑁 mod 𝑃) ∈ (0..^𝑃)) |
6 | 5 | 3adant3 1130 |
. . . . . 6
⊢ ((𝑃 ∈ ℙ ∧ 𝑁 ∈ ℤ ∧ (𝑁 mod 𝑃) ≠ 0) → (𝑁 mod 𝑃) ∈ (0..^𝑃)) |
7 | | fzo1fzo0n0 13366 |
. . . . . . . 8
⊢ ((𝑁 mod 𝑃) ∈ (1..^𝑃) ↔ ((𝑁 mod 𝑃) ∈ (0..^𝑃) ∧ (𝑁 mod 𝑃) ≠ 0)) |
8 | 7 | simplbi2com 502 |
. . . . . . 7
⊢ ((𝑁 mod 𝑃) ≠ 0 → ((𝑁 mod 𝑃) ∈ (0..^𝑃) → (𝑁 mod 𝑃) ∈ (1..^𝑃))) |
9 | 8 | 3ad2ant3 1133 |
. . . . . 6
⊢ ((𝑃 ∈ ℙ ∧ 𝑁 ∈ ℤ ∧ (𝑁 mod 𝑃) ≠ 0) → ((𝑁 mod 𝑃) ∈ (0..^𝑃) → (𝑁 mod 𝑃) ∈ (1..^𝑃))) |
10 | 6, 9 | mpd 15 |
. . . . 5
⊢ ((𝑃 ∈ ℙ ∧ 𝑁 ∈ ℤ ∧ (𝑁 mod 𝑃) ≠ 0) → (𝑁 mod 𝑃) ∈ (1..^𝑃)) |
11 | 10 | adantr 480 |
. . . 4
⊢ (((𝑃 ∈ ℙ ∧ 𝑁 ∈ ℤ ∧ (𝑁 mod 𝑃) ≠ 0) ∧ 𝐼 ∈ (0..^𝑃)) → (𝑁 mod 𝑃) ∈ (1..^𝑃)) |
12 | | simpr 484 |
. . . 4
⊢ (((𝑃 ∈ ℙ ∧ 𝑁 ∈ ℤ ∧ (𝑁 mod 𝑃) ≠ 0) ∧ 𝐼 ∈ (0..^𝑃)) → 𝐼 ∈ (0..^𝑃)) |
13 | | nnnn0modprm0 16435 |
. . . 4
⊢ ((𝑃 ∈ ℙ ∧ (𝑁 mod 𝑃) ∈ (1..^𝑃) ∧ 𝐼 ∈ (0..^𝑃)) → ∃𝑗 ∈ (0..^𝑃)((𝐼 + (𝑗 · (𝑁 mod 𝑃))) mod 𝑃) = 0) |
14 | 1, 11, 12, 13 | syl3anc 1369 |
. . 3
⊢ (((𝑃 ∈ ℙ ∧ 𝑁 ∈ ℤ ∧ (𝑁 mod 𝑃) ≠ 0) ∧ 𝐼 ∈ (0..^𝑃)) → ∃𝑗 ∈ (0..^𝑃)((𝐼 + (𝑗 · (𝑁 mod 𝑃))) mod 𝑃) = 0) |
15 | | elfzoelz 13316 |
. . . . . . . . . 10
⊢ (𝑗 ∈ (0..^𝑃) → 𝑗 ∈ ℤ) |
16 | 15 | zcnd 12356 |
. . . . . . . . 9
⊢ (𝑗 ∈ (0..^𝑃) → 𝑗 ∈ ℂ) |
17 | 2 | anim1ci 615 |
. . . . . . . . . . . 12
⊢ ((𝑃 ∈ ℙ ∧ 𝑁 ∈ ℤ) → (𝑁 ∈ ℤ ∧ 𝑃 ∈
ℕ)) |
18 | | zmodcl 13539 |
. . . . . . . . . . . 12
⊢ ((𝑁 ∈ ℤ ∧ 𝑃 ∈ ℕ) → (𝑁 mod 𝑃) ∈
ℕ0) |
19 | | nn0cn 12173 |
. . . . . . . . . . . 12
⊢ ((𝑁 mod 𝑃) ∈ ℕ0 → (𝑁 mod 𝑃) ∈ ℂ) |
20 | 17, 18, 19 | 3syl 18 |
. . . . . . . . . . 11
⊢ ((𝑃 ∈ ℙ ∧ 𝑁 ∈ ℤ) → (𝑁 mod 𝑃) ∈ ℂ) |
21 | 20 | 3adant3 1130 |
. . . . . . . . . 10
⊢ ((𝑃 ∈ ℙ ∧ 𝑁 ∈ ℤ ∧ (𝑁 mod 𝑃) ≠ 0) → (𝑁 mod 𝑃) ∈ ℂ) |
22 | 21 | adantr 480 |
. . . . . . . . 9
⊢ (((𝑃 ∈ ℙ ∧ 𝑁 ∈ ℤ ∧ (𝑁 mod 𝑃) ≠ 0) ∧ 𝐼 ∈ (0..^𝑃)) → (𝑁 mod 𝑃) ∈ ℂ) |
23 | | mulcom 10888 |
. . . . . . . . 9
⊢ ((𝑗 ∈ ℂ ∧ (𝑁 mod 𝑃) ∈ ℂ) → (𝑗 · (𝑁 mod 𝑃)) = ((𝑁 mod 𝑃) · 𝑗)) |
24 | 16, 22, 23 | syl2anr 596 |
. . . . . . . 8
⊢ ((((𝑃 ∈ ℙ ∧ 𝑁 ∈ ℤ ∧ (𝑁 mod 𝑃) ≠ 0) ∧ 𝐼 ∈ (0..^𝑃)) ∧ 𝑗 ∈ (0..^𝑃)) → (𝑗 · (𝑁 mod 𝑃)) = ((𝑁 mod 𝑃) · 𝑗)) |
25 | 24 | oveq2d 7271 |
. . . . . . 7
⊢ ((((𝑃 ∈ ℙ ∧ 𝑁 ∈ ℤ ∧ (𝑁 mod 𝑃) ≠ 0) ∧ 𝐼 ∈ (0..^𝑃)) ∧ 𝑗 ∈ (0..^𝑃)) → (𝐼 + (𝑗 · (𝑁 mod 𝑃))) = (𝐼 + ((𝑁 mod 𝑃) · 𝑗))) |
26 | 25 | oveq1d 7270 |
. . . . . 6
⊢ ((((𝑃 ∈ ℙ ∧ 𝑁 ∈ ℤ ∧ (𝑁 mod 𝑃) ≠ 0) ∧ 𝐼 ∈ (0..^𝑃)) ∧ 𝑗 ∈ (0..^𝑃)) → ((𝐼 + (𝑗 · (𝑁 mod 𝑃))) mod 𝑃) = ((𝐼 + ((𝑁 mod 𝑃) · 𝑗)) mod 𝑃)) |
27 | | elfzoelz 13316 |
. . . . . . . . . 10
⊢ (𝐼 ∈ (0..^𝑃) → 𝐼 ∈ ℤ) |
28 | 27 | zred 12355 |
. . . . . . . . 9
⊢ (𝐼 ∈ (0..^𝑃) → 𝐼 ∈ ℝ) |
29 | 28 | adantl 481 |
. . . . . . . 8
⊢ (((𝑃 ∈ ℙ ∧ 𝑁 ∈ ℤ ∧ (𝑁 mod 𝑃) ≠ 0) ∧ 𝐼 ∈ (0..^𝑃)) → 𝐼 ∈ ℝ) |
30 | 29 | adantr 480 |
. . . . . . 7
⊢ ((((𝑃 ∈ ℙ ∧ 𝑁 ∈ ℤ ∧ (𝑁 mod 𝑃) ≠ 0) ∧ 𝐼 ∈ (0..^𝑃)) ∧ 𝑗 ∈ (0..^𝑃)) → 𝐼 ∈ ℝ) |
31 | | zre 12253 |
. . . . . . . . . 10
⊢ (𝑁 ∈ ℤ → 𝑁 ∈
ℝ) |
32 | 31 | 3ad2ant2 1132 |
. . . . . . . . 9
⊢ ((𝑃 ∈ ℙ ∧ 𝑁 ∈ ℤ ∧ (𝑁 mod 𝑃) ≠ 0) → 𝑁 ∈ ℝ) |
33 | 32 | adantr 480 |
. . . . . . . 8
⊢ (((𝑃 ∈ ℙ ∧ 𝑁 ∈ ℤ ∧ (𝑁 mod 𝑃) ≠ 0) ∧ 𝐼 ∈ (0..^𝑃)) → 𝑁 ∈ ℝ) |
34 | 33 | adantr 480 |
. . . . . . 7
⊢ ((((𝑃 ∈ ℙ ∧ 𝑁 ∈ ℤ ∧ (𝑁 mod 𝑃) ≠ 0) ∧ 𝐼 ∈ (0..^𝑃)) ∧ 𝑗 ∈ (0..^𝑃)) → 𝑁 ∈ ℝ) |
35 | 15 | adantl 481 |
. . . . . . 7
⊢ ((((𝑃 ∈ ℙ ∧ 𝑁 ∈ ℤ ∧ (𝑁 mod 𝑃) ≠ 0) ∧ 𝐼 ∈ (0..^𝑃)) ∧ 𝑗 ∈ (0..^𝑃)) → 𝑗 ∈ ℤ) |
36 | 2 | nnrpd 12699 |
. . . . . . . . . 10
⊢ (𝑃 ∈ ℙ → 𝑃 ∈
ℝ+) |
37 | 36 | 3ad2ant1 1131 |
. . . . . . . . 9
⊢ ((𝑃 ∈ ℙ ∧ 𝑁 ∈ ℤ ∧ (𝑁 mod 𝑃) ≠ 0) → 𝑃 ∈
ℝ+) |
38 | 37 | adantr 480 |
. . . . . . . 8
⊢ (((𝑃 ∈ ℙ ∧ 𝑁 ∈ ℤ ∧ (𝑁 mod 𝑃) ≠ 0) ∧ 𝐼 ∈ (0..^𝑃)) → 𝑃 ∈
ℝ+) |
39 | 38 | adantr 480 |
. . . . . . 7
⊢ ((((𝑃 ∈ ℙ ∧ 𝑁 ∈ ℤ ∧ (𝑁 mod 𝑃) ≠ 0) ∧ 𝐼 ∈ (0..^𝑃)) ∧ 𝑗 ∈ (0..^𝑃)) → 𝑃 ∈
ℝ+) |
40 | | modaddmulmod 13586 |
. . . . . . 7
⊢ (((𝐼 ∈ ℝ ∧ 𝑁 ∈ ℝ ∧ 𝑗 ∈ ℤ) ∧ 𝑃 ∈ ℝ+)
→ ((𝐼 + ((𝑁 mod 𝑃) · 𝑗)) mod 𝑃) = ((𝐼 + (𝑁 · 𝑗)) mod 𝑃)) |
41 | 30, 34, 35, 39, 40 | syl31anc 1371 |
. . . . . 6
⊢ ((((𝑃 ∈ ℙ ∧ 𝑁 ∈ ℤ ∧ (𝑁 mod 𝑃) ≠ 0) ∧ 𝐼 ∈ (0..^𝑃)) ∧ 𝑗 ∈ (0..^𝑃)) → ((𝐼 + ((𝑁 mod 𝑃) · 𝑗)) mod 𝑃) = ((𝐼 + (𝑁 · 𝑗)) mod 𝑃)) |
42 | | zcn 12254 |
. . . . . . . . . . . . . 14
⊢ (𝑁 ∈ ℤ → 𝑁 ∈
ℂ) |
43 | 42 | adantr 480 |
. . . . . . . . . . . . 13
⊢ ((𝑁 ∈ ℤ ∧ 𝑗 ∈ (0..^𝑃)) → 𝑁 ∈ ℂ) |
44 | 16 | adantl 481 |
. . . . . . . . . . . . 13
⊢ ((𝑁 ∈ ℤ ∧ 𝑗 ∈ (0..^𝑃)) → 𝑗 ∈ ℂ) |
45 | 43, 44 | mulcomd 10927 |
. . . . . . . . . . . 12
⊢ ((𝑁 ∈ ℤ ∧ 𝑗 ∈ (0..^𝑃)) → (𝑁 · 𝑗) = (𝑗 · 𝑁)) |
46 | 45 | ex 412 |
. . . . . . . . . . 11
⊢ (𝑁 ∈ ℤ → (𝑗 ∈ (0..^𝑃) → (𝑁 · 𝑗) = (𝑗 · 𝑁))) |
47 | 46 | 3ad2ant2 1132 |
. . . . . . . . . 10
⊢ ((𝑃 ∈ ℙ ∧ 𝑁 ∈ ℤ ∧ (𝑁 mod 𝑃) ≠ 0) → (𝑗 ∈ (0..^𝑃) → (𝑁 · 𝑗) = (𝑗 · 𝑁))) |
48 | 47 | adantr 480 |
. . . . . . . . 9
⊢ (((𝑃 ∈ ℙ ∧ 𝑁 ∈ ℤ ∧ (𝑁 mod 𝑃) ≠ 0) ∧ 𝐼 ∈ (0..^𝑃)) → (𝑗 ∈ (0..^𝑃) → (𝑁 · 𝑗) = (𝑗 · 𝑁))) |
49 | 48 | imp 406 |
. . . . . . . 8
⊢ ((((𝑃 ∈ ℙ ∧ 𝑁 ∈ ℤ ∧ (𝑁 mod 𝑃) ≠ 0) ∧ 𝐼 ∈ (0..^𝑃)) ∧ 𝑗 ∈ (0..^𝑃)) → (𝑁 · 𝑗) = (𝑗 · 𝑁)) |
50 | 49 | oveq2d 7271 |
. . . . . . 7
⊢ ((((𝑃 ∈ ℙ ∧ 𝑁 ∈ ℤ ∧ (𝑁 mod 𝑃) ≠ 0) ∧ 𝐼 ∈ (0..^𝑃)) ∧ 𝑗 ∈ (0..^𝑃)) → (𝐼 + (𝑁 · 𝑗)) = (𝐼 + (𝑗 · 𝑁))) |
51 | 50 | oveq1d 7270 |
. . . . . 6
⊢ ((((𝑃 ∈ ℙ ∧ 𝑁 ∈ ℤ ∧ (𝑁 mod 𝑃) ≠ 0) ∧ 𝐼 ∈ (0..^𝑃)) ∧ 𝑗 ∈ (0..^𝑃)) → ((𝐼 + (𝑁 · 𝑗)) mod 𝑃) = ((𝐼 + (𝑗 · 𝑁)) mod 𝑃)) |
52 | 26, 41, 51 | 3eqtrrd 2783 |
. . . . 5
⊢ ((((𝑃 ∈ ℙ ∧ 𝑁 ∈ ℤ ∧ (𝑁 mod 𝑃) ≠ 0) ∧ 𝐼 ∈ (0..^𝑃)) ∧ 𝑗 ∈ (0..^𝑃)) → ((𝐼 + (𝑗 · 𝑁)) mod 𝑃) = ((𝐼 + (𝑗 · (𝑁 mod 𝑃))) mod 𝑃)) |
53 | 52 | eqeq1d 2740 |
. . . 4
⊢ ((((𝑃 ∈ ℙ ∧ 𝑁 ∈ ℤ ∧ (𝑁 mod 𝑃) ≠ 0) ∧ 𝐼 ∈ (0..^𝑃)) ∧ 𝑗 ∈ (0..^𝑃)) → (((𝐼 + (𝑗 · 𝑁)) mod 𝑃) = 0 ↔ ((𝐼 + (𝑗 · (𝑁 mod 𝑃))) mod 𝑃) = 0)) |
54 | 53 | rexbidva 3224 |
. . 3
⊢ (((𝑃 ∈ ℙ ∧ 𝑁 ∈ ℤ ∧ (𝑁 mod 𝑃) ≠ 0) ∧ 𝐼 ∈ (0..^𝑃)) → (∃𝑗 ∈ (0..^𝑃)((𝐼 + (𝑗 · 𝑁)) mod 𝑃) = 0 ↔ ∃𝑗 ∈ (0..^𝑃)((𝐼 + (𝑗 · (𝑁 mod 𝑃))) mod 𝑃) = 0)) |
55 | 14, 54 | mpbird 256 |
. 2
⊢ (((𝑃 ∈ ℙ ∧ 𝑁 ∈ ℤ ∧ (𝑁 mod 𝑃) ≠ 0) ∧ 𝐼 ∈ (0..^𝑃)) → ∃𝑗 ∈ (0..^𝑃)((𝐼 + (𝑗 · 𝑁)) mod 𝑃) = 0) |
56 | 55 | ex 412 |
1
⊢ ((𝑃 ∈ ℙ ∧ 𝑁 ∈ ℤ ∧ (𝑁 mod 𝑃) ≠ 0) → (𝐼 ∈ (0..^𝑃) → ∃𝑗 ∈ (0..^𝑃)((𝐼 + (𝑗 · 𝑁)) mod 𝑃) = 0)) |