| Step | Hyp | Ref
| Expression |
| 1 | | 4sqlemafi.a |
. 2
⊢ 𝐴 = {𝑢 ∣ ∃𝑚 ∈ (0...𝑁)𝑢 = ((𝑚↑2) mod 𝑃)} |
| 2 | | 0zd 9338 |
. . . 4
⊢ (𝜑 → 0 ∈
ℤ) |
| 3 | | 4sqlemafi.p |
. . . . 5
⊢ (𝜑 → 𝑃 ∈ ℕ) |
| 4 | 3 | nnzd 9447 |
. . . 4
⊢ (𝜑 → 𝑃 ∈ ℤ) |
| 5 | | fzofig 10524 |
. . . 4
⊢ ((0
∈ ℤ ∧ 𝑃
∈ ℤ) → (0..^𝑃) ∈ Fin) |
| 6 | 2, 4, 5 | syl2anc 411 |
. . 3
⊢ (𝜑 → (0..^𝑃) ∈ Fin) |
| 7 | | df-rex 2481 |
. . . . 5
⊢
(∃𝑚 ∈
(0...𝑁)𝑢 = ((𝑚↑2) mod 𝑃) ↔ ∃𝑚(𝑚 ∈ (0...𝑁) ∧ 𝑢 = ((𝑚↑2) mod 𝑃))) |
| 8 | 7 | abbii 2312 |
. . . 4
⊢ {𝑢 ∣ ∃𝑚 ∈ (0...𝑁)𝑢 = ((𝑚↑2) mod 𝑃)} = {𝑢 ∣ ∃𝑚(𝑚 ∈ (0...𝑁) ∧ 𝑢 = ((𝑚↑2) mod 𝑃))} |
| 9 | | simprr 531 |
. . . . . . . 8
⊢ ((𝜑 ∧ (𝑚 ∈ (0...𝑁) ∧ 𝑢 = ((𝑚↑2) mod 𝑃))) → 𝑢 = ((𝑚↑2) mod 𝑃)) |
| 10 | | elfzelz 10100 |
. . . . . . . . . . 11
⊢ (𝑚 ∈ (0...𝑁) → 𝑚 ∈ ℤ) |
| 11 | 10 | ad2antrl 490 |
. . . . . . . . . 10
⊢ ((𝜑 ∧ (𝑚 ∈ (0...𝑁) ∧ 𝑢 = ((𝑚↑2) mod 𝑃))) → 𝑚 ∈ ℤ) |
| 12 | | zsqcl 10702 |
. . . . . . . . . 10
⊢ (𝑚 ∈ ℤ → (𝑚↑2) ∈
ℤ) |
| 13 | 11, 12 | syl 14 |
. . . . . . . . 9
⊢ ((𝜑 ∧ (𝑚 ∈ (0...𝑁) ∧ 𝑢 = ((𝑚↑2) mod 𝑃))) → (𝑚↑2) ∈ ℤ) |
| 14 | 3 | adantr 276 |
. . . . . . . . 9
⊢ ((𝜑 ∧ (𝑚 ∈ (0...𝑁) ∧ 𝑢 = ((𝑚↑2) mod 𝑃))) → 𝑃 ∈ ℕ) |
| 15 | | zmodfzo 10439 |
. . . . . . . . 9
⊢ (((𝑚↑2) ∈ ℤ ∧
𝑃 ∈ ℕ) →
((𝑚↑2) mod 𝑃) ∈ (0..^𝑃)) |
| 16 | 13, 14, 15 | syl2anc 411 |
. . . . . . . 8
⊢ ((𝜑 ∧ (𝑚 ∈ (0...𝑁) ∧ 𝑢 = ((𝑚↑2) mod 𝑃))) → ((𝑚↑2) mod 𝑃) ∈ (0..^𝑃)) |
| 17 | 9, 16 | eqeltrd 2273 |
. . . . . . 7
⊢ ((𝜑 ∧ (𝑚 ∈ (0...𝑁) ∧ 𝑢 = ((𝑚↑2) mod 𝑃))) → 𝑢 ∈ (0..^𝑃)) |
| 18 | 17 | ex 115 |
. . . . . 6
⊢ (𝜑 → ((𝑚 ∈ (0...𝑁) ∧ 𝑢 = ((𝑚↑2) mod 𝑃)) → 𝑢 ∈ (0..^𝑃))) |
| 19 | 18 | exlimdv 1833 |
. . . . 5
⊢ (𝜑 → (∃𝑚(𝑚 ∈ (0...𝑁) ∧ 𝑢 = ((𝑚↑2) mod 𝑃)) → 𝑢 ∈ (0..^𝑃))) |
| 20 | 19 | abssdv 3257 |
. . . 4
⊢ (𝜑 → {𝑢 ∣ ∃𝑚(𝑚 ∈ (0...𝑁) ∧ 𝑢 = ((𝑚↑2) mod 𝑃))} ⊆ (0..^𝑃)) |
| 21 | 8, 20 | eqsstrid 3229 |
. . 3
⊢ (𝜑 → {𝑢 ∣ ∃𝑚 ∈ (0...𝑁)𝑢 = ((𝑚↑2) mod 𝑃)} ⊆ (0..^𝑃)) |
| 22 | | 0zd 9338 |
. . . . . 6
⊢ ((𝜑 ∧ 𝑥 ∈ (0..^𝑃)) → 0 ∈ ℤ) |
| 23 | | 4sqlemafi.n |
. . . . . . . 8
⊢ (𝜑 → 𝑁 ∈ ℕ) |
| 24 | 23 | nnzd 9447 |
. . . . . . 7
⊢ (𝜑 → 𝑁 ∈ ℤ) |
| 25 | 24 | adantr 276 |
. . . . . 6
⊢ ((𝜑 ∧ 𝑥 ∈ (0..^𝑃)) → 𝑁 ∈ ℤ) |
| 26 | | elfzoelz 10222 |
. . . . . . . 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 10437 |
. . . . . . . 8
⊢ (((𝜑 ∧ 𝑥 ∈ (0..^𝑃)) ∧ 𝑚 ∈ (0...𝑁)) → ((𝑚↑2) mod 𝑃) ∈
ℕ0) |
| 32 | 31 | nn0zd 9446 |
. . . . . . 7
⊢ (((𝜑 ∧ 𝑥 ∈ (0..^𝑃)) ∧ 𝑚 ∈ (0...𝑁)) → ((𝑚↑2) mod 𝑃) ∈ ℤ) |
| 33 | | zdceq 9401 |
. . . . . . 7
⊢ ((𝑥 ∈ ℤ ∧ ((𝑚↑2) mod 𝑃) ∈ ℤ) →
DECID 𝑥 =
((𝑚↑2) mod 𝑃)) |
| 34 | 27, 32, 33 | syl2anc 411 |
. . . . . 6
⊢ (((𝜑 ∧ 𝑥 ∈ (0..^𝑃)) ∧ 𝑚 ∈ (0...𝑁)) → DECID 𝑥 = ((𝑚↑2) mod 𝑃)) |
| 35 | 22, 25, 34 | exfzdc 10316 |
. . . . 5
⊢ ((𝜑 ∧ 𝑥 ∈ (0..^𝑃)) → DECID ∃𝑚 ∈ (0...𝑁)𝑥 = ((𝑚↑2) mod 𝑃)) |
| 36 | | vex 2766 |
. . . . . . 7
⊢ 𝑥 ∈ V |
| 37 | | eqeq1 2203 |
. . . . . . . 8
⊢ (𝑢 = 𝑥 → (𝑢 = ((𝑚↑2) mod 𝑃) ↔ 𝑥 = ((𝑚↑2) mod 𝑃))) |
| 38 | 37 | rexbidv 2498 |
. . . . . . 7
⊢ (𝑢 = 𝑥 → (∃𝑚 ∈ (0...𝑁)𝑢 = ((𝑚↑2) mod 𝑃) ↔ ∃𝑚 ∈ (0...𝑁)𝑥 = ((𝑚↑2) mod 𝑃))) |
| 39 | 36, 38 | elab 2908 |
. . . . . 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 2570 |
. . 3
⊢ (𝜑 → ∀𝑥 ∈ (0..^𝑃)DECID 𝑥 ∈ {𝑢 ∣ ∃𝑚 ∈ (0...𝑁)𝑢 = ((𝑚↑2) mod 𝑃)}) |
| 43 | | ssfidc 6998 |
. . 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 2283 |
1
⊢ (𝜑 → 𝐴 ∈ Fin) |