Metamath Proof Explorer


Theorem eq0rabdioph

Description: This is the first of a number of theorems which allow sets to be proven Diophantine by syntactic induction, and models the correspondence between Diophantine sets and monotone existential first-order logic. This first theorem shows that the zero set of an implicit polynomial is Diophantine. (Contributed by Stefan O'Rear, 10-Oct-2014)

Ref Expression
Assertion eq0rabdioph ⊢ N ∈ ℕ 0 ∧ t ∈ ℤ 1 … N ⟼ A ∈ mzPoly ⁡ 1 … N → t ∈ ℕ 0 1 … N | A = 0 ∈ Dioph ⁡ N

Proof

Step Hyp Ref Expression
1 nfv ⊢ Ⅎ t N ∈ ℕ 0
2 nfmpt1 ⊢ Ⅎ _ t t ∈ ℤ 1 … N ⟼ A
3 2 nfel1 ⊢ Ⅎ t t ∈ ℤ 1 … N ⟼ A ∈ mzPoly ⁡ 1 … N
4 1 3 nfan ⊢ Ⅎ t N ∈ ℕ 0 ∧ t ∈ ℤ 1 … N ⟼ A ∈ mzPoly ⁡ 1 … N
5 zex ⊢ ℤ ∈ V
6 nn0ssz ⊢ ℕ 0 ⊆ ℤ
7 mapss ⊢ ℤ ∈ V ∧ ℕ 0 ⊆ ℤ → ℕ 0 1 … N ⊆ ℤ 1 … N
8 5 6 7 mp2an ⊢ ℕ 0 1 … N ⊆ ℤ 1 … N
9 8 sseli ⊢ t ∈ ℕ 0 1 … N → t ∈ ℤ 1 … N
10 9 adantl ⊢ N ∈ ℕ 0 ∧ t ∈ ℤ 1 … N ⟼ A ∈ mzPoly ⁡ 1 … N ∧ t ∈ ℕ 0 1 … N → t ∈ ℤ 1 … N
11 mzpf ⊢ t ∈ ℤ 1 … N ⟼ A ∈ mzPoly ⁡ 1 … N → t ∈ ℤ 1 … N ⟼ A : ℤ 1 … N ⟶ ℤ
12 mptfcl ⊢ t ∈ ℤ 1 … N ⟼ A : ℤ 1 … N ⟶ ℤ → t ∈ ℤ 1 … N → A ∈ ℤ
13 12 imp ⊢ t ∈ ℤ 1 … N ⟼ A : ℤ 1 … N ⟶ ℤ ∧ t ∈ ℤ 1 … N → A ∈ ℤ
14 11 9 13 syl2an ⊢ t ∈ ℤ 1 … N ⟼ A ∈ mzPoly ⁡ 1 … N ∧ t ∈ ℕ 0 1 … N → A ∈ ℤ
15 14 adantll ⊢ N ∈ ℕ 0 ∧ t ∈ ℤ 1 … N ⟼ A ∈ mzPoly ⁡ 1 … N ∧ t ∈ ℕ 0 1 … N → A ∈ ℤ
16 eqid ⊢ t ∈ ℤ 1 … N ⟼ A = t ∈ ℤ 1 … N ⟼ A
17 16 fvmpt2 ⊢ t ∈ ℤ 1 … N ∧ A ∈ ℤ → t ∈ ℤ 1 … N ⟼ A ⁡ t = A
18 10 15 17 syl2anc ⊢ N ∈ ℕ 0 ∧ t ∈ ℤ 1 … N ⟼ A ∈ mzPoly ⁡ 1 … N ∧ t ∈ ℕ 0 1 … N → t ∈ ℤ 1 … N ⟼ A ⁡ t = A
19 18 eqcomd ⊢ N ∈ ℕ 0 ∧ t ∈ ℤ 1 … N ⟼ A ∈ mzPoly ⁡ 1 … N ∧ t ∈ ℕ 0 1 … N → A = t ∈ ℤ 1 … N ⟼ A ⁡ t
20 19 eqeq1d ⊢ N ∈ ℕ 0 ∧ t ∈ ℤ 1 … N ⟼ A ∈ mzPoly ⁡ 1 … N ∧ t ∈ ℕ 0 1 … N → A = 0 ↔ t ∈ ℤ 1 … N ⟼ A ⁡ t = 0
21 20 ex ⊢ N ∈ ℕ 0 ∧ t ∈ ℤ 1 … N ⟼ A ∈ mzPoly ⁡ 1 … N → t ∈ ℕ 0 1 … N → A = 0 ↔ t ∈ ℤ 1 … N ⟼ A ⁡ t = 0
22 4 21 ralrimi ⊢ N ∈ ℕ 0 ∧ t ∈ ℤ 1 … N ⟼ A ∈ mzPoly ⁡ 1 … N → ∀ t ∈ ℕ 0 1 … N A = 0 ↔ t ∈ ℤ 1 … N ⟼ A ⁡ t = 0
23 rabbi ⊢ ∀ t ∈ ℕ 0 1 … N A = 0 ↔ t ∈ ℤ 1 … N ⟼ A ⁡ t = 0 ↔ t ∈ ℕ 0 1 … N | A = 0 = t ∈ ℕ 0 1 … N | t ∈ ℤ 1 … N ⟼ A ⁡ t = 0
24 22 23 sylib ⊢ N ∈ ℕ 0 ∧ t ∈ ℤ 1 … N ⟼ A ∈ mzPoly ⁡ 1 … N → t ∈ ℕ 0 1 … N | A = 0 = t ∈ ℕ 0 1 … N | t ∈ ℤ 1 … N ⟼ A ⁡ t = 0
25 nfcv ⊢ Ⅎ _ t ℕ 0 1 … N
26 nfcv ⊢ Ⅎ _ a ℕ 0 1 … N
27 nfv ⊢ Ⅎ a t ∈ ℤ 1 … N ⟼ A ⁡ t = 0
28 nffvmpt1 ⊢ Ⅎ _ t t ∈ ℤ 1 … N ⟼ A ⁡ a
29 28 nfeq1 ⊢ Ⅎ t t ∈ ℤ 1 … N ⟼ A ⁡ a = 0
30 fveqeq2 ⊢ t = a → t ∈ ℤ 1 … N ⟼ A ⁡ t = 0 ↔ t ∈ ℤ 1 … N ⟼ A ⁡ a = 0
31 25 26 27 29 30 cbvrabw ⊢ t ∈ ℕ 0 1 … N | t ∈ ℤ 1 … N ⟼ A ⁡ t = 0 = a ∈ ℕ 0 1 … N | t ∈ ℤ 1 … N ⟼ A ⁡ a = 0
32 24 31 eqtrdi ⊢ N ∈ ℕ 0 ∧ t ∈ ℤ 1 … N ⟼ A ∈ mzPoly ⁡ 1 … N → t ∈ ℕ 0 1 … N | A = 0 = a ∈ ℕ 0 1 … N | t ∈ ℤ 1 … N ⟼ A ⁡ a = 0
33 df-rab ⊢ a ∈ ℕ 0 1 … N | t ∈ ℤ 1 … N ⟼ A ⁡ a = 0 = a | a ∈ ℕ 0 1 … N ∧ t ∈ ℤ 1 … N ⟼ A ⁡ a = 0
34 32 33 eqtrdi ⊢ N ∈ ℕ 0 ∧ t ∈ ℤ 1 … N ⟼ A ∈ mzPoly ⁡ 1 … N → t ∈ ℕ 0 1 … N | A = 0 = a | a ∈ ℕ 0 1 … N ∧ t ∈ ℤ 1 … N ⟼ A ⁡ a = 0
35 elmapi ⊢ b ∈ ℕ 0 1 … N → b : 1 … N ⟶ ℕ 0
36 ffn ⊢ b : 1 … N ⟶ ℕ 0 → b Fn 1 … N
37 fnresdm ⊢ b Fn 1 … N → b ↾ 1 … N = b
38 35 36 37 3syl ⊢ b ∈ ℕ 0 1 … N → b ↾ 1 … N = b
39 38 eqeq2d ⊢ b ∈ ℕ 0 1 … N → a = b ↾ 1 … N ↔ a = b
40 equcom ⊢ a = b ↔ b = a
41 39 40 bitrdi ⊢ b ∈ ℕ 0 1 … N → a = b ↾ 1 … N ↔ b = a
42 41 anbi1d ⊢ b ∈ ℕ 0 1 … N → a = b ↾ 1 … N ∧ t ∈ ℤ 1 … N ⟼ A ⁡ b = 0 ↔ b = a ∧ t ∈ ℤ 1 … N ⟼ A ⁡ b = 0
43 42 rexbiia ⊢ ∃ b ∈ ℕ 0 1 … N a = b ↾ 1 … N ∧ t ∈ ℤ 1 … N ⟼ A ⁡ b = 0 ↔ ∃ b ∈ ℕ 0 1 … N b = a ∧ t ∈ ℤ 1 … N ⟼ A ⁡ b = 0
44 fveqeq2 ⊢ b = a → t ∈ ℤ 1 … N ⟼ A ⁡ b = 0 ↔ t ∈ ℤ 1 … N ⟼ A ⁡ a = 0
45 44 ceqsrexbv ⊢ ∃ b ∈ ℕ 0 1 … N b = a ∧ t ∈ ℤ 1 … N ⟼ A ⁡ b = 0 ↔ a ∈ ℕ 0 1 … N ∧ t ∈ ℤ 1 … N ⟼ A ⁡ a = 0
46 43 45 bitr2i ⊢ a ∈ ℕ 0 1 … N ∧ t ∈ ℤ 1 … N ⟼ A ⁡ a = 0 ↔ ∃ b ∈ ℕ 0 1 … N a = b ↾ 1 … N ∧ t ∈ ℤ 1 … N ⟼ A ⁡ b = 0
47 46 abbii ⊢ a | a ∈ ℕ 0 1 … N ∧ t ∈ ℤ 1 … N ⟼ A ⁡ a = 0 = a | ∃ b ∈ ℕ 0 1 … N a = b ↾ 1 … N ∧ t ∈ ℤ 1 … N ⟼ A ⁡ b = 0
48 34 47 eqtrdi ⊢ N ∈ ℕ 0 ∧ t ∈ ℤ 1 … N ⟼ A ∈ mzPoly ⁡ 1 … N → t ∈ ℕ 0 1 … N | A = 0 = a | ∃ b ∈ ℕ 0 1 … N a = b ↾ 1 … N ∧ t ∈ ℤ 1 … N ⟼ A ⁡ b = 0
49 simpl ⊢ N ∈ ℕ 0 ∧ t ∈ ℤ 1 … N ⟼ A ∈ mzPoly ⁡ 1 … N → N ∈ ℕ 0
50 nn0z ⊢ N ∈ ℕ 0 → N ∈ ℤ
51 uzid ⊢ N ∈ ℤ → N ∈ ℤ ≥ N
52 50 51 syl ⊢ N ∈ ℕ 0 → N ∈ ℤ ≥ N
53 52 adantr ⊢ N ∈ ℕ 0 ∧ t ∈ ℤ 1 … N ⟼ A ∈ mzPoly ⁡ 1 … N → N ∈ ℤ ≥ N
54 simpr ⊢ N ∈ ℕ 0 ∧ t ∈ ℤ 1 … N ⟼ A ∈ mzPoly ⁡ 1 … N → t ∈ ℤ 1 … N ⟼ A ∈ mzPoly ⁡ 1 … N
55 eldioph ⊢ N ∈ ℕ 0 ∧ N ∈ ℤ ≥ N ∧ t ∈ ℤ 1 … N ⟼ A ∈ mzPoly ⁡ 1 … N → a | ∃ b ∈ ℕ 0 1 … N a = b ↾ 1 … N ∧ t ∈ ℤ 1 … N ⟼ A ⁡ b = 0 ∈ Dioph ⁡ N
56 49 53 54 55 syl3anc ⊢ N ∈ ℕ 0 ∧ t ∈ ℤ 1 … N ⟼ A ∈ mzPoly ⁡ 1 … N → a | ∃ b ∈ ℕ 0 1 … N a = b ↾ 1 … N ∧ t ∈ ℤ 1 … N ⟼ A ⁡ b = 0 ∈ Dioph ⁡ N
57 48 56 eqeltrd ⊢ N ∈ ℕ 0 ∧ t ∈ ℤ 1 … N ⟼ A ∈ mzPoly ⁡ 1 … N → t ∈ ℕ 0 1 … N | A = 0 ∈ Dioph ⁡ N