Metamath Proof Explorer


Theorem eldiophb

Description: Initial expression of Diophantine property of a set. (Contributed by Stefan O'Rear, 5-Oct-2014) (Revised by Mario Carneiro, 22-Sep-2015)

Ref Expression
Assertion eldiophb ⊢ D ∈ Dioph ⁡ N ↔ N ∈ ℕ 0 ∧ ∃ k ∈ ℤ ≥ N ∃ p ∈ mzPoly ⁡ 1 … k D = t | ∃ u ∈ ℕ 0 1 … k t = u ↾ 1 … N ∧ p ⁡ u = 0

Proof

Step Hyp Ref Expression
1 df-dioph ⊢ Dioph = n ∈ ℕ 0 ⟼ ran ⁡ k ∈ ℤ ≥ n , p ∈ mzPoly ⁡ 1 … k ⟼ t | ∃ u ∈ ℕ 0 1 … k t = u ↾ 1 … n ∧ p ⁡ u = 0
2 1 dmmptss ⊢ dom ⁡ Dioph ⊆ ℕ 0
3 elfvdm ⊢ D ∈ Dioph ⁡ N → N ∈ dom ⁡ Dioph
4 2 3 sselid ⊢ D ∈ Dioph ⁡ N → N ∈ ℕ 0
5 fveq2 ⊢ n = N → ℤ ≥ n = ℤ ≥ N
6 eqidd ⊢ n = N → mzPoly ⁡ 1 … k = mzPoly ⁡ 1 … k
7 oveq2 ⊢ n = N → 1 … n = 1 … N
8 7 reseq2d ⊢ n = N → u ↾ 1 … n = u ↾ 1 … N
9 8 eqeq2d ⊢ n = N → t = u ↾ 1 … n ↔ t = u ↾ 1 … N
10 9 anbi1d ⊢ n = N → t = u ↾ 1 … n ∧ p ⁡ u = 0 ↔ t = u ↾ 1 … N ∧ p ⁡ u = 0
11 10 rexbidv ⊢ n = N → ∃ u ∈ ℕ 0 1 … k t = u ↾ 1 … n ∧ p ⁡ u = 0 ↔ ∃ u ∈ ℕ 0 1 … k t = u ↾ 1 … N ∧ p ⁡ u = 0
12 11 abbidv ⊢ n = N → t | ∃ u ∈ ℕ 0 1 … k t = u ↾ 1 … n ∧ p ⁡ u = 0 = t | ∃ u ∈ ℕ 0 1 … k t = u ↾ 1 … N ∧ p ⁡ u = 0
13 5 6 12 mpoeq123dv ⊢ n = N → k ∈ ℤ ≥ n , p ∈ mzPoly ⁡ 1 … k ⟼ t | ∃ u ∈ ℕ 0 1 … k t = u ↾ 1 … n ∧ p ⁡ u = 0 = k ∈ ℤ ≥ N , p ∈ mzPoly ⁡ 1 … k ⟼ t | ∃ u ∈ ℕ 0 1 … k t = u ↾ 1 … N ∧ p ⁡ u = 0
14 13 rneqd ⊢ n = N → ran ⁡ k ∈ ℤ ≥ n , p ∈ mzPoly ⁡ 1 … k ⟼ t | ∃ u ∈ ℕ 0 1 … k t = u ↾ 1 … n ∧ p ⁡ u = 0 = ran ⁡ k ∈ ℤ ≥ N , p ∈ mzPoly ⁡ 1 … k ⟼ t | ∃ u ∈ ℕ 0 1 … k t = u ↾ 1 … N ∧ p ⁡ u = 0
15 ovex ⊢ ℕ 0 1 … N ∈ V
16 15 pwex ⊢ 𝒫 ℕ 0 1 … N ∈ V
17 eqid ⊢ k ∈ ℤ ≥ N , p ∈ mzPoly ⁡ 1 … k ⟼ t | ∃ u ∈ ℕ 0 1 … k t = u ↾ 1 … N ∧ p ⁡ u = 0 = k ∈ ℤ ≥ N , p ∈ mzPoly ⁡ 1 … k ⟼ t | ∃ u ∈ ℕ 0 1 … k t = u ↾ 1 … N ∧ p ⁡ u = 0
18 17 rnmpo ⊢ ran ⁡ k ∈ ℤ ≥ N , p ∈ mzPoly ⁡ 1 … k ⟼ t | ∃ u ∈ ℕ 0 1 … k t = u ↾ 1 … N ∧ p ⁡ u = 0 = d | ∃ k ∈ ℤ ≥ N ∃ p ∈ mzPoly ⁡ 1 … k d = t | ∃ u ∈ ℕ 0 1 … k t = u ↾ 1 … N ∧ p ⁡ u = 0
19 elmapi ⊢ u ∈ ℕ 0 1 … k → u : 1 … k ⟶ ℕ 0
20 fzss2 ⊢ k ∈ ℤ ≥ N → 1 … N ⊆ 1 … k
21 fssres ⊢ u : 1 … k ⟶ ℕ 0 ∧ 1 … N ⊆ 1 … k → u ↾ 1 … N : 1 … N ⟶ ℕ 0
22 19 20 21 syl2anr ⊢ k ∈ ℤ ≥ N ∧ u ∈ ℕ 0 1 … k → u ↾ 1 … N : 1 … N ⟶ ℕ 0
23 nn0ex ⊢ ℕ 0 ∈ V
24 ovex ⊢ 1 … N ∈ V
25 23 24 elmap ⊢ u ↾ 1 … N ∈ ℕ 0 1 … N ↔ u ↾ 1 … N : 1 … N ⟶ ℕ 0
26 22 25 sylibr ⊢ k ∈ ℤ ≥ N ∧ u ∈ ℕ 0 1 … k → u ↾ 1 … N ∈ ℕ 0 1 … N
27 eleq1 ⊢ t = u ↾ 1 … N → t ∈ ℕ 0 1 … N ↔ u ↾ 1 … N ∈ ℕ 0 1 … N
28 27 adantr ⊢ t = u ↾ 1 … N ∧ p ⁡ u = 0 → t ∈ ℕ 0 1 … N ↔ u ↾ 1 … N ∈ ℕ 0 1 … N
29 26 28 syl5ibrcom ⊢ k ∈ ℤ ≥ N ∧ u ∈ ℕ 0 1 … k → t = u ↾ 1 … N ∧ p ⁡ u = 0 → t ∈ ℕ 0 1 … N
30 29 rexlimdva ⊢ k ∈ ℤ ≥ N → ∃ u ∈ ℕ 0 1 … k t = u ↾ 1 … N ∧ p ⁡ u = 0 → t ∈ ℕ 0 1 … N
31 30 abssdv ⊢ k ∈ ℤ ≥ N → t | ∃ u ∈ ℕ 0 1 … k t = u ↾ 1 … N ∧ p ⁡ u = 0 ⊆ ℕ 0 1 … N
32 15 elpw2 ⊢ t | ∃ u ∈ ℕ 0 1 … k t = u ↾ 1 … N ∧ p ⁡ u = 0 ∈ 𝒫 ℕ 0 1 … N ↔ t | ∃ u ∈ ℕ 0 1 … k t = u ↾ 1 … N ∧ p ⁡ u = 0 ⊆ ℕ 0 1 … N
33 31 32 sylibr ⊢ k ∈ ℤ ≥ N → t | ∃ u ∈ ℕ 0 1 … k t = u ↾ 1 … N ∧ p ⁡ u = 0 ∈ 𝒫 ℕ 0 1 … N
34 eleq1 ⊢ d = t | ∃ u ∈ ℕ 0 1 … k t = u ↾ 1 … N ∧ p ⁡ u = 0 → d ∈ 𝒫 ℕ 0 1 … N ↔ t | ∃ u ∈ ℕ 0 1 … k t = u ↾ 1 … N ∧ p ⁡ u = 0 ∈ 𝒫 ℕ 0 1 … N
35 33 34 syl5ibrcom ⊢ k ∈ ℤ ≥ N → d = t | ∃ u ∈ ℕ 0 1 … k t = u ↾ 1 … N ∧ p ⁡ u = 0 → d ∈ 𝒫 ℕ 0 1 … N
36 35 rexlimdvw ⊢ k ∈ ℤ ≥ N → ∃ p ∈ mzPoly ⁡ 1 … k d = t | ∃ u ∈ ℕ 0 1 … k t = u ↾ 1 … N ∧ p ⁡ u = 0 → d ∈ 𝒫 ℕ 0 1 … N
37 36 rexlimiv ⊢ ∃ k ∈ ℤ ≥ N ∃ p ∈ mzPoly ⁡ 1 … k d = t | ∃ u ∈ ℕ 0 1 … k t = u ↾ 1 … N ∧ p ⁡ u = 0 → d ∈ 𝒫 ℕ 0 1 … N
38 37 abssi ⊢ d | ∃ k ∈ ℤ ≥ N ∃ p ∈ mzPoly ⁡ 1 … k d = t | ∃ u ∈ ℕ 0 1 … k t = u ↾ 1 … N ∧ p ⁡ u = 0 ⊆ 𝒫 ℕ 0 1 … N
39 18 38 eqsstri ⊢ ran ⁡ k ∈ ℤ ≥ N , p ∈ mzPoly ⁡ 1 … k ⟼ t | ∃ u ∈ ℕ 0 1 … k t = u ↾ 1 … N ∧ p ⁡ u = 0 ⊆ 𝒫 ℕ 0 1 … N
40 16 39 ssexi ⊢ ran ⁡ k ∈ ℤ ≥ N , p ∈ mzPoly ⁡ 1 … k ⟼ t | ∃ u ∈ ℕ 0 1 … k t = u ↾ 1 … N ∧ p ⁡ u = 0 ∈ V
41 14 1 40 fvmpt ⊢ N ∈ ℕ 0 → Dioph ⁡ N = ran ⁡ k ∈ ℤ ≥ N , p ∈ mzPoly ⁡ 1 … k ⟼ t | ∃ u ∈ ℕ 0 1 … k t = u ↾ 1 … N ∧ p ⁡ u = 0
42 41 eleq2d ⊢ N ∈ ℕ 0 → D ∈ Dioph ⁡ N ↔ D ∈ ran ⁡ k ∈ ℤ ≥ N , p ∈ mzPoly ⁡ 1 … k ⟼ t | ∃ u ∈ ℕ 0 1 … k t = u ↾ 1 … N ∧ p ⁡ u = 0
43 ovex ⊢ ℕ 0 1 … k ∈ V
44 43 abrexex ⊢ t | ∃ u ∈ ℕ 0 1 … k t = u ↾ 1 … N ∈ V
45 simpl ⊢ t = u ↾ 1 … N ∧ p ⁡ u = 0 → t = u ↾ 1 … N
46 45 reximi ⊢ ∃ u ∈ ℕ 0 1 … k t = u ↾ 1 … N ∧ p ⁡ u = 0 → ∃ u ∈ ℕ 0 1 … k t = u ↾ 1 … N
47 46 ss2abi ⊢ t | ∃ u ∈ ℕ 0 1 … k t = u ↾ 1 … N ∧ p ⁡ u = 0 ⊆ t | ∃ u ∈ ℕ 0 1 … k t = u ↾ 1 … N
48 44 47 ssexi ⊢ t | ∃ u ∈ ℕ 0 1 … k t = u ↾ 1 … N ∧ p ⁡ u = 0 ∈ V
49 17 48 elrnmpo ⊢ D ∈ ran ⁡ k ∈ ℤ ≥ N , p ∈ mzPoly ⁡ 1 … k ⟼ t | ∃ u ∈ ℕ 0 1 … k t = u ↾ 1 … N ∧ p ⁡ u = 0 ↔ ∃ k ∈ ℤ ≥ N ∃ p ∈ mzPoly ⁡ 1 … k D = t | ∃ u ∈ ℕ 0 1 … k t = u ↾ 1 … N ∧ p ⁡ u = 0
50 42 49 bitrdi ⊢ N ∈ ℕ 0 → D ∈ Dioph ⁡ N ↔ ∃ k ∈ ℤ ≥ N ∃ p ∈ mzPoly ⁡ 1 … k D = t | ∃ u ∈ ℕ 0 1 … k t = u ↾ 1 … N ∧ p ⁡ u = 0
51 4 50 biadanii ⊢ D ∈ Dioph ⁡ N ↔ N ∈ ℕ 0 ∧ ∃ k ∈ ℤ ≥ N ∃ p ∈ mzPoly ⁡ 1 … k D = t | ∃ u ∈ ℕ 0 1 … k t = u ↾ 1 … N ∧ p ⁡ u = 0