Metamath Proof Explorer


Theorem diophrex

Description: Projecting a Diophantine set by removing a coordinate results in a Diophantine set. (Contributed by Stefan O'Rear, 10-Oct-2014)

Ref Expression
Assertion diophrex ⊢ N ∈ ℕ 0 ∧ M ∈ ℤ ≥ N ∧ S ∈ Dioph ⁡ M → t | ∃ u ∈ S t = u ↾ 1 … N ∈ Dioph ⁡ N

Proof

Step Hyp Ref Expression
1 eqeq1 ⊢ a = t → a = b ↾ 1 … N ↔ t = b ↾ 1 … N
2 1 rexbidv ⊢ a = t → ∃ b ∈ S a = b ↾ 1 … N ↔ ∃ b ∈ S t = b ↾ 1 … N
3 reseq1 ⊢ b = u → b ↾ 1 … N = u ↾ 1 … N
4 3 eqeq2d ⊢ b = u → t = b ↾ 1 … N ↔ t = u ↾ 1 … N
5 4 cbvrexvw ⊢ ∃ b ∈ S t = b ↾ 1 … N ↔ ∃ u ∈ S t = u ↾ 1 … N
6 2 5 bitrdi ⊢ a = t → ∃ b ∈ S a = b ↾ 1 … N ↔ ∃ u ∈ S t = u ↾ 1 … N
7 6 cbvabv ⊢ a | ∃ b ∈ S a = b ↾ 1 … N = t | ∃ u ∈ S t = u ↾ 1 … N
8 rexeq ⊢ S = d | ∃ e ∈ ℕ 0 ℕ d = e ↾ 1 … M ∧ c ⁡ e = 0 → ∃ b ∈ S a = b ↾ 1 … N ↔ ∃ b ∈ d | ∃ e ∈ ℕ 0 ℕ d = e ↾ 1 … M ∧ c ⁡ e = 0 a = b ↾ 1 … N
9 8 abbidv ⊢ S = d | ∃ e ∈ ℕ 0 ℕ d = e ↾ 1 … M ∧ c ⁡ e = 0 → a | ∃ b ∈ S a = b ↾ 1 … N = a | ∃ b ∈ d | ∃ e ∈ ℕ 0 ℕ d = e ↾ 1 … M ∧ c ⁡ e = 0 a = b ↾ 1 … N
10 9 adantl ⊢ N ∈ ℕ 0 ∧ M ∈ ℤ ≥ N ∧ S ∈ Dioph ⁡ M ∧ c ∈ mzPoly ⁡ ℕ ∧ S = d | ∃ e ∈ ℕ 0 ℕ d = e ↾ 1 … M ∧ c ⁡ e = 0 → a | ∃ b ∈ S a = b ↾ 1 … N = a | ∃ b ∈ d | ∃ e ∈ ℕ 0 ℕ d = e ↾ 1 … M ∧ c ⁡ e = 0 a = b ↾ 1 … N
11 eqeq1 ⊢ d = b → d = e ↾ 1 … M ↔ b = e ↾ 1 … M
12 11 anbi1d ⊢ d = b → d = e ↾ 1 … M ∧ c ⁡ e = 0 ↔ b = e ↾ 1 … M ∧ c ⁡ e = 0
13 12 rexbidv ⊢ d = b → ∃ e ∈ ℕ 0 ℕ d = e ↾ 1 … M ∧ c ⁡ e = 0 ↔ ∃ e ∈ ℕ 0 ℕ b = e ↾ 1 … M ∧ c ⁡ e = 0
14 13 rexab ⊢ ∃ b ∈ d | ∃ e ∈ ℕ 0 ℕ d = e ↾ 1 … M ∧ c ⁡ e = 0 a = b ↾ 1 … N ↔ ∃ b ∃ e ∈ ℕ 0 ℕ b = e ↾ 1 … M ∧ c ⁡ e = 0 ∧ a = b ↾ 1 … N
15 r19.41v ⊢ ∃ e ∈ ℕ 0 ℕ b = e ↾ 1 … M ∧ c ⁡ e = 0 ∧ a = b ↾ 1 … N ↔ ∃ e ∈ ℕ 0 ℕ b = e ↾ 1 … M ∧ c ⁡ e = 0 ∧ a = b ↾ 1 … N
16 15 exbii ⊢ ∃ b ∃ e ∈ ℕ 0 ℕ b = e ↾ 1 … M ∧ c ⁡ e = 0 ∧ a = b ↾ 1 … N ↔ ∃ b ∃ e ∈ ℕ 0 ℕ b = e ↾ 1 … M ∧ c ⁡ e = 0 ∧ a = b ↾ 1 … N
17 rexcom4 ⊢ ∃ e ∈ ℕ 0 ℕ ∃ b b = e ↾ 1 … M ∧ c ⁡ e = 0 ∧ a = b ↾ 1 … N ↔ ∃ b ∃ e ∈ ℕ 0 ℕ b = e ↾ 1 … M ∧ c ⁡ e = 0 ∧ a = b ↾ 1 … N
18 anass ⊢ b = e ↾ 1 … M ∧ c ⁡ e = 0 ∧ a = b ↾ 1 … N ↔ b = e ↾ 1 … M ∧ c ⁡ e = 0 ∧ a = b ↾ 1 … N
19 18 exbii ⊢ ∃ b b = e ↾ 1 … M ∧ c ⁡ e = 0 ∧ a = b ↾ 1 … N ↔ ∃ b b = e ↾ 1 … M ∧ c ⁡ e = 0 ∧ a = b ↾ 1 … N
20 vex ⊢ e ∈ V
21 20 resex ⊢ e ↾ 1 … M ∈ V
22 reseq1 ⊢ b = e ↾ 1 … M → b ↾ 1 … N = e ↾ 1 … M ↾ 1 … N
23 22 eqeq2d ⊢ b = e ↾ 1 … M → a = b ↾ 1 … N ↔ a = e ↾ 1 … M ↾ 1 … N
24 23 anbi2d ⊢ b = e ↾ 1 … M → c ⁡ e = 0 ∧ a = b ↾ 1 … N ↔ c ⁡ e = 0 ∧ a = e ↾ 1 … M ↾ 1 … N
25 21 24 ceqsexv ⊢ ∃ b b = e ↾ 1 … M ∧ c ⁡ e = 0 ∧ a = b ↾ 1 … N ↔ c ⁡ e = 0 ∧ a = e ↾ 1 … M ↾ 1 … N
26 19 25 bitri ⊢ ∃ b b = e ↾ 1 … M ∧ c ⁡ e = 0 ∧ a = b ↾ 1 … N ↔ c ⁡ e = 0 ∧ a = e ↾ 1 … M ↾ 1 … N
27 ancom ⊢ c ⁡ e = 0 ∧ a = e ↾ 1 … M ↾ 1 … N ↔ a = e ↾ 1 … M ↾ 1 … N ∧ c ⁡ e = 0
28 simpl2 ⊢ N ∈ ℕ 0 ∧ M ∈ ℤ ≥ N ∧ S ∈ Dioph ⁡ M ∧ c ∈ mzPoly ⁡ ℕ → M ∈ ℤ ≥ N
29 fzss2 ⊢ M ∈ ℤ ≥ N → 1 … N ⊆ 1 … M
30 resabs1 ⊢ 1 … N ⊆ 1 … M → e ↾ 1 … M ↾ 1 … N = e ↾ 1 … N
31 28 29 30 3syl ⊢ N ∈ ℕ 0 ∧ M ∈ ℤ ≥ N ∧ S ∈ Dioph ⁡ M ∧ c ∈ mzPoly ⁡ ℕ → e ↾ 1 … M ↾ 1 … N = e ↾ 1 … N
32 31 eqeq2d ⊢ N ∈ ℕ 0 ∧ M ∈ ℤ ≥ N ∧ S ∈ Dioph ⁡ M ∧ c ∈ mzPoly ⁡ ℕ → a = e ↾ 1 … M ↾ 1 … N ↔ a = e ↾ 1 … N
33 32 anbi1d ⊢ N ∈ ℕ 0 ∧ M ∈ ℤ ≥ N ∧ S ∈ Dioph ⁡ M ∧ c ∈ mzPoly ⁡ ℕ → a = e ↾ 1 … M ↾ 1 … N ∧ c ⁡ e = 0 ↔ a = e ↾ 1 … N ∧ c ⁡ e = 0
34 27 33 bitrid ⊢ N ∈ ℕ 0 ∧ M ∈ ℤ ≥ N ∧ S ∈ Dioph ⁡ M ∧ c ∈ mzPoly ⁡ ℕ → c ⁡ e = 0 ∧ a = e ↾ 1 … M ↾ 1 … N ↔ a = e ↾ 1 … N ∧ c ⁡ e = 0
35 26 34 bitrid ⊢ N ∈ ℕ 0 ∧ M ∈ ℤ ≥ N ∧ S ∈ Dioph ⁡ M ∧ c ∈ mzPoly ⁡ ℕ → ∃ b b = e ↾ 1 … M ∧ c ⁡ e = 0 ∧ a = b ↾ 1 … N ↔ a = e ↾ 1 … N ∧ c ⁡ e = 0
36 35 rexbidv ⊢ N ∈ ℕ 0 ∧ M ∈ ℤ ≥ N ∧ S ∈ Dioph ⁡ M ∧ c ∈ mzPoly ⁡ ℕ → ∃ e ∈ ℕ 0 ℕ ∃ b b = e ↾ 1 … M ∧ c ⁡ e = 0 ∧ a = b ↾ 1 … N ↔ ∃ e ∈ ℕ 0 ℕ a = e ↾ 1 … N ∧ c ⁡ e = 0
37 17 36 bitr3id ⊢ N ∈ ℕ 0 ∧ M ∈ ℤ ≥ N ∧ S ∈ Dioph ⁡ M ∧ c ∈ mzPoly ⁡ ℕ → ∃ b ∃ e ∈ ℕ 0 ℕ b = e ↾ 1 … M ∧ c ⁡ e = 0 ∧ a = b ↾ 1 … N ↔ ∃ e ∈ ℕ 0 ℕ a = e ↾ 1 … N ∧ c ⁡ e = 0
38 16 37 bitr3id ⊢ N ∈ ℕ 0 ∧ M ∈ ℤ ≥ N ∧ S ∈ Dioph ⁡ M ∧ c ∈ mzPoly ⁡ ℕ → ∃ b ∃ e ∈ ℕ 0 ℕ b = e ↾ 1 … M ∧ c ⁡ e = 0 ∧ a = b ↾ 1 … N ↔ ∃ e ∈ ℕ 0 ℕ a = e ↾ 1 … N ∧ c ⁡ e = 0
39 14 38 bitrid ⊢ N ∈ ℕ 0 ∧ M ∈ ℤ ≥ N ∧ S ∈ Dioph ⁡ M ∧ c ∈ mzPoly ⁡ ℕ → ∃ b ∈ d | ∃ e ∈ ℕ 0 ℕ d = e ↾ 1 … M ∧ c ⁡ e = 0 a = b ↾ 1 … N ↔ ∃ e ∈ ℕ 0 ℕ a = e ↾ 1 … N ∧ c ⁡ e = 0
40 39 abbidv ⊢ N ∈ ℕ 0 ∧ M ∈ ℤ ≥ N ∧ S ∈ Dioph ⁡ M ∧ c ∈ mzPoly ⁡ ℕ → a | ∃ b ∈ d | ∃ e ∈ ℕ 0 ℕ d = e ↾ 1 … M ∧ c ⁡ e = 0 a = b ↾ 1 … N = a | ∃ e ∈ ℕ 0 ℕ a = e ↾ 1 … N ∧ c ⁡ e = 0
41 eldioph3 ⊢ N ∈ ℕ 0 ∧ c ∈ mzPoly ⁡ ℕ → a | ∃ e ∈ ℕ 0 ℕ a = e ↾ 1 … N ∧ c ⁡ e = 0 ∈ Dioph ⁡ N
42 41 3ad2antl1 ⊢ N ∈ ℕ 0 ∧ M ∈ ℤ ≥ N ∧ S ∈ Dioph ⁡ M ∧ c ∈ mzPoly ⁡ ℕ → a | ∃ e ∈ ℕ 0 ℕ a = e ↾ 1 … N ∧ c ⁡ e = 0 ∈ Dioph ⁡ N
43 40 42 eqeltrd ⊢ N ∈ ℕ 0 ∧ M ∈ ℤ ≥ N ∧ S ∈ Dioph ⁡ M ∧ c ∈ mzPoly ⁡ ℕ → a | ∃ b ∈ d | ∃ e ∈ ℕ 0 ℕ d = e ↾ 1 … M ∧ c ⁡ e = 0 a = b ↾ 1 … N ∈ Dioph ⁡ N
44 43 adantr ⊢ N ∈ ℕ 0 ∧ M ∈ ℤ ≥ N ∧ S ∈ Dioph ⁡ M ∧ c ∈ mzPoly ⁡ ℕ ∧ S = d | ∃ e ∈ ℕ 0 ℕ d = e ↾ 1 … M ∧ c ⁡ e = 0 → a | ∃ b ∈ d | ∃ e ∈ ℕ 0 ℕ d = e ↾ 1 … M ∧ c ⁡ e = 0 a = b ↾ 1 … N ∈ Dioph ⁡ N
45 10 44 eqeltrd ⊢ N ∈ ℕ 0 ∧ M ∈ ℤ ≥ N ∧ S ∈ Dioph ⁡ M ∧ c ∈ mzPoly ⁡ ℕ ∧ S = d | ∃ e ∈ ℕ 0 ℕ d = e ↾ 1 … M ∧ c ⁡ e = 0 → a | ∃ b ∈ S a = b ↾ 1 … N ∈ Dioph ⁡ N
46 eldioph3b ⊢ S ∈ Dioph ⁡ M ↔ M ∈ ℕ 0 ∧ ∃ c ∈ mzPoly ⁡ ℕ S = d | ∃ e ∈ ℕ 0 ℕ d = e ↾ 1 … M ∧ c ⁡ e = 0
47 46 simprbi ⊢ S ∈ Dioph ⁡ M → ∃ c ∈ mzPoly ⁡ ℕ S = d | ∃ e ∈ ℕ 0 ℕ d = e ↾ 1 … M ∧ c ⁡ e = 0
48 47 3ad2ant3 ⊢ N ∈ ℕ 0 ∧ M ∈ ℤ ≥ N ∧ S ∈ Dioph ⁡ M → ∃ c ∈ mzPoly ⁡ ℕ S = d | ∃ e ∈ ℕ 0 ℕ d = e ↾ 1 … M ∧ c ⁡ e = 0
49 45 48 r19.29a ⊢ N ∈ ℕ 0 ∧ M ∈ ℤ ≥ N ∧ S ∈ Dioph ⁡ M → a | ∃ b ∈ S a = b ↾ 1 … N ∈ Dioph ⁡ N
50 7 49 eqeltrrid ⊢ N ∈ ℕ 0 ∧ M ∈ ℤ ≥ N ∧ S ∈ Dioph ⁡ M → t | ∃ u ∈ S t = u ↾ 1 … N ∈ Dioph ⁡ N