Step | Hyp | Ref
| Expression |
1 | | 4sqlemafi.a |
. 2
⊢ 𝐴 = {𝑢 ∣ ∃𝑚 ∈ (0...𝑁)𝑢 = ((𝑚↑2) mod 𝑃)} |
2 | | 0zd 9329 |
. . . 4
⊢ (𝜑 → 0 ∈
ℤ) |
3 | | 4sqlemafi.p |
. . . . 5
⊢ (𝜑 → 𝑃 ∈ ℕ) |
4 | 3 | nnzd 9438 |
. . . 4
⊢ (𝜑 → 𝑃 ∈ ℤ) |
5 | | fzofig 10503 |
. . . 4
⊢ ((0
∈ ℤ ∧ 𝑃
∈ ℤ) → (0..^𝑃) ∈ Fin) |
6 | 2, 4, 5 | syl2anc 411 |
. . 3
⊢ (𝜑 → (0..^𝑃) ∈ Fin) |
7 | | df-rex 2478 |
. . . . 5
⊢
(∃𝑚 ∈
(0...𝑁)𝑢 = ((𝑚↑2) mod 𝑃) ↔ ∃𝑚(𝑚 ∈ (0...𝑁) ∧ 𝑢 = ((𝑚↑2) mod 𝑃))) |
8 | 7 | abbii 2309 |
. . . 4
⊢ {𝑢 ∣ ∃𝑚 ∈ (0...𝑁)𝑢 = ((𝑚↑2) mod 𝑃)} = {𝑢 ∣ ∃𝑚(𝑚 ∈ (0...𝑁) ∧ 𝑢 = ((𝑚↑2) mod 𝑃))} |
9 | | simprr 531 |
. . . . . . . 8
⊢ ((𝜑 ∧ (𝑚 ∈ (0...𝑁) ∧ 𝑢 = ((𝑚↑2) mod 𝑃))) → 𝑢 = ((𝑚↑2) mod 𝑃)) |
10 | | elfzelz 10091 |
. . . . . . . . . . 11
⊢ (𝑚 ∈ (0...𝑁) → 𝑚 ∈ ℤ) |
11 | 10 | ad2antrl 490 |
. . . . . . . . . 10
⊢ ((𝜑 ∧ (𝑚 ∈ (0...𝑁) ∧ 𝑢 = ((𝑚↑2) mod 𝑃))) → 𝑚 ∈ ℤ) |
12 | | zsqcl 10681 |
. . . . . . . . . 10
⊢ (𝑚 ∈ ℤ → (𝑚↑2) ∈
ℤ) |
13 | 11, 12 | syl 14 |
. . . . . . . . 9
⊢ ((𝜑 ∧ (𝑚 ∈ (0...𝑁) ∧ 𝑢 = ((𝑚↑2) mod 𝑃))) → (𝑚↑2) ∈ ℤ) |
14 | 3 | adantr 276 |
. . . . . . . . 9
⊢ ((𝜑 ∧ (𝑚 ∈ (0...𝑁) ∧ 𝑢 = ((𝑚↑2) mod 𝑃))) → 𝑃 ∈ ℕ) |
15 | | zmodfzo 10418 |
. . . . . . . . 9
⊢ (((𝑚↑2) ∈ ℤ ∧
𝑃 ∈ ℕ) →
((𝑚↑2) mod 𝑃) ∈ (0..^𝑃)) |
16 | 13, 14, 15 | syl2anc 411 |
. . . . . . . 8
⊢ ((𝜑 ∧ (𝑚 ∈ (0...𝑁) ∧ 𝑢 = ((𝑚↑2) mod 𝑃))) → ((𝑚↑2) mod 𝑃) ∈ (0..^𝑃)) |
17 | 9, 16 | eqeltrd 2270 |
. . . . . . 7
⊢ ((𝜑 ∧ (𝑚 ∈ (0...𝑁) ∧ 𝑢 = ((𝑚↑2) mod 𝑃))) → 𝑢 ∈ (0..^𝑃)) |
18 | 17 | ex 115 |
. . . . . 6
⊢ (𝜑 → ((𝑚 ∈ (0...𝑁) ∧ 𝑢 = ((𝑚↑2) mod 𝑃)) → 𝑢 ∈ (0..^𝑃))) |
19 | 18 | exlimdv 1830 |
. . . . 5
⊢ (𝜑 → (∃𝑚(𝑚 ∈ (0...𝑁) ∧ 𝑢 = ((𝑚↑2) mod 𝑃)) → 𝑢 ∈ (0..^𝑃))) |
20 | 19 | abssdv 3253 |
. . . 4
⊢ (𝜑 → {𝑢 ∣ ∃𝑚(𝑚 ∈ (0...𝑁) ∧ 𝑢 = ((𝑚↑2) mod 𝑃))} ⊆ (0..^𝑃)) |
21 | 8, 20 | eqsstrid 3225 |
. . 3
⊢ (𝜑 → {𝑢 ∣ ∃𝑚 ∈ (0...𝑁)𝑢 = ((𝑚↑2) mod 𝑃)} ⊆ (0..^𝑃)) |
22 | | 0zd 9329 |
. . . . . 6
⊢ ((𝜑 ∧ 𝑥 ∈ (0..^𝑃)) → 0 ∈ ℤ) |
23 | | 4sqlemafi.n |
. . . . . . . 8
⊢ (𝜑 → 𝑁 ∈ ℕ) |
24 | 23 | nnzd 9438 |
. . . . . . 7
⊢ (𝜑 → 𝑁 ∈ ℤ) |
25 | 24 | adantr 276 |
. . . . . 6
⊢ ((𝜑 ∧ 𝑥 ∈ (0..^𝑃)) → 𝑁 ∈ ℤ) |
26 | | elfzoelz 10213 |
. . . . . . . 8
⊢ (𝑥 ∈ (0..^𝑃) → 𝑥 ∈ ℤ) |
27 | 26 | ad2antlr 489 |
. . . . . . 7
⊢ (((𝜑 ∧ 𝑥 ∈ (0..^𝑃)) ∧ 𝑚 ∈ (0...𝑁)) → 𝑥 ∈ ℤ) |
28 | 10 | adantl 277 |
. . . . . . . . . 10
⊢ (((𝜑 ∧ 𝑥 ∈ (0..^𝑃)) ∧ 𝑚 ∈ (0...𝑁)) → 𝑚 ∈ ℤ) |
29 | 28, 12 | syl 14 |
. . . . . . . . 9
⊢ (((𝜑 ∧ 𝑥 ∈ (0..^𝑃)) ∧ 𝑚 ∈ (0...𝑁)) → (𝑚↑2) ∈ ℤ) |
30 | 3 | ad2antrr 488 |
. . . . . . . . 9
⊢ (((𝜑 ∧ 𝑥 ∈ (0..^𝑃)) ∧ 𝑚 ∈ (0...𝑁)) → 𝑃 ∈ ℕ) |
31 | 29, 30 | zmodcld 10416 |
. . . . . . . 8
⊢ (((𝜑 ∧ 𝑥 ∈ (0..^𝑃)) ∧ 𝑚 ∈ (0...𝑁)) → ((𝑚↑2) mod 𝑃) ∈
ℕ0) |
32 | 31 | nn0zd 9437 |
. . . . . . 7
⊢ (((𝜑 ∧ 𝑥 ∈ (0..^𝑃)) ∧ 𝑚 ∈ (0...𝑁)) → ((𝑚↑2) mod 𝑃) ∈ ℤ) |
33 | | zdceq 9392 |
. . . . . . 7
⊢ ((𝑥 ∈ ℤ ∧ ((𝑚↑2) mod 𝑃) ∈ ℤ) →
DECID 𝑥 =
((𝑚↑2) mod 𝑃)) |
34 | 27, 32, 33 | syl2anc 411 |
. . . . . 6
⊢ (((𝜑 ∧ 𝑥 ∈ (0..^𝑃)) ∧ 𝑚 ∈ (0...𝑁)) → DECID 𝑥 = ((𝑚↑2) mod 𝑃)) |
35 | 22, 25, 34 | exfzdc 10307 |
. . . . 5
⊢ ((𝜑 ∧ 𝑥 ∈ (0..^𝑃)) → DECID ∃𝑚 ∈ (0...𝑁)𝑥 = ((𝑚↑2) mod 𝑃)) |
36 | | vex 2763 |
. . . . . . 7
⊢ 𝑥 ∈ V |
37 | | eqeq1 2200 |
. . . . . . . 8
⊢ (𝑢 = 𝑥 → (𝑢 = ((𝑚↑2) mod 𝑃) ↔ 𝑥 = ((𝑚↑2) mod 𝑃))) |
38 | 37 | rexbidv 2495 |
. . . . . . 7
⊢ (𝑢 = 𝑥 → (∃𝑚 ∈ (0...𝑁)𝑢 = ((𝑚↑2) mod 𝑃) ↔ ∃𝑚 ∈ (0...𝑁)𝑥 = ((𝑚↑2) mod 𝑃))) |
39 | 36, 38 | elab 2904 |
. . . . . 6
⊢ (𝑥 ∈ {𝑢 ∣ ∃𝑚 ∈ (0...𝑁)𝑢 = ((𝑚↑2) mod 𝑃)} ↔ ∃𝑚 ∈ (0...𝑁)𝑥 = ((𝑚↑2) mod 𝑃)) |
40 | 39 | dcbii 841 |
. . . . 5
⊢
(DECID 𝑥 ∈ {𝑢 ∣ ∃𝑚 ∈ (0...𝑁)𝑢 = ((𝑚↑2) mod 𝑃)} ↔ DECID ∃𝑚 ∈ (0...𝑁)𝑥 = ((𝑚↑2) mod 𝑃)) |
41 | 35, 40 | sylibr 134 |
. . . 4
⊢ ((𝜑 ∧ 𝑥 ∈ (0..^𝑃)) → DECID 𝑥 ∈ {𝑢 ∣ ∃𝑚 ∈ (0...𝑁)𝑢 = ((𝑚↑2) mod 𝑃)}) |
42 | 41 | ralrimiva 2567 |
. . 3
⊢ (𝜑 → ∀𝑥 ∈ (0..^𝑃)DECID 𝑥 ∈ {𝑢 ∣ ∃𝑚 ∈ (0...𝑁)𝑢 = ((𝑚↑2) mod 𝑃)}) |
43 | | ssfidc 6991 |
. . 3
⊢
(((0..^𝑃) ∈ Fin
∧ {𝑢 ∣
∃𝑚 ∈ (0...𝑁)𝑢 = ((𝑚↑2) mod 𝑃)} ⊆ (0..^𝑃) ∧ ∀𝑥 ∈ (0..^𝑃)DECID 𝑥 ∈ {𝑢 ∣ ∃𝑚 ∈ (0...𝑁)𝑢 = ((𝑚↑2) mod 𝑃)}) → {𝑢 ∣ ∃𝑚 ∈ (0...𝑁)𝑢 = ((𝑚↑2) mod 𝑃)} ∈ Fin) |
44 | 6, 21, 42, 43 | syl3anc 1249 |
. 2
⊢ (𝜑 → {𝑢 ∣ ∃𝑚 ∈ (0...𝑁)𝑢 = ((𝑚↑2) mod 𝑃)} ∈ Fin) |
45 | 1, 44 | eqeltrid 2280 |
1
⊢ (𝜑 → 𝐴 ∈ Fin) |