Metamath Proof Explorer


Theorem eqrabdioph

Description: Diophantine set builder for equality of polynomial expressions. Note that the two expressions need not be nonnegative; only variables are so constrained. (Contributed by Stefan O'Rear, 10-Oct-2014)

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

Proof

Step Hyp Ref Expression
1 nfmpt1 ⊢ Ⅎ _ t t ∈ ℤ 1 … N ⟼ A
2 1 nfel1 ⊢ Ⅎ t t ∈ ℤ 1 … N ⟼ A ∈ mzPoly ⁡ 1 … N
3 nfmpt1 ⊢ Ⅎ _ t t ∈ ℤ 1 … N ⟼ B
4 3 nfel1 ⊢ Ⅎ t t ∈ ℤ 1 … N ⟼ B ∈ mzPoly ⁡ 1 … N
5 2 4 nfan ⊢ Ⅎ t t ∈ ℤ 1 … N ⟼ A ∈ mzPoly ⁡ 1 … N ∧ t ∈ ℤ 1 … N ⟼ B ∈ mzPoly ⁡ 1 … N
6 mzpf ⊢ t ∈ ℤ 1 … N ⟼ A ∈ mzPoly ⁡ 1 … N → t ∈ ℤ 1 … N ⟼ A : ℤ 1 … N ⟶ ℤ
7 6 ad2antrr ⊢ t ∈ ℤ 1 … N ⟼ A ∈ mzPoly ⁡ 1 … N ∧ t ∈ ℤ 1 … N ⟼ B ∈ mzPoly ⁡ 1 … N ∧ t ∈ ℕ 0 1 … N → t ∈ ℤ 1 … N ⟼ A : ℤ 1 … N ⟶ ℤ
8 zex ⊢ ℤ ∈ V
9 nn0ssz ⊢ ℕ 0 ⊆ ℤ
10 mapss ⊢ ℤ ∈ V ∧ ℕ 0 ⊆ ℤ → ℕ 0 1 … N ⊆ ℤ 1 … N
11 8 9 10 mp2an ⊢ ℕ 0 1 … N ⊆ ℤ 1 … N
12 11 sseli ⊢ t ∈ ℕ 0 1 … N → t ∈ ℤ 1 … N
13 12 adantl ⊢ t ∈ ℤ 1 … N ⟼ A ∈ mzPoly ⁡ 1 … N ∧ t ∈ ℤ 1 … N ⟼ B ∈ mzPoly ⁡ 1 … N ∧ t ∈ ℕ 0 1 … N → t ∈ ℤ 1 … N
14 mptfcl ⊢ t ∈ ℤ 1 … N ⟼ A : ℤ 1 … N ⟶ ℤ → t ∈ ℤ 1 … N → A ∈ ℤ
15 7 13 14 sylc ⊢ t ∈ ℤ 1 … N ⟼ A ∈ mzPoly ⁡ 1 … N ∧ t ∈ ℤ 1 … N ⟼ B ∈ mzPoly ⁡ 1 … N ∧ t ∈ ℕ 0 1 … N → A ∈ ℤ
16 15 zcnd ⊢ t ∈ ℤ 1 … N ⟼ A ∈ mzPoly ⁡ 1 … N ∧ t ∈ ℤ 1 … N ⟼ B ∈ mzPoly ⁡ 1 … N ∧ t ∈ ℕ 0 1 … N → A ∈ ℂ
17 mzpf ⊢ t ∈ ℤ 1 … N ⟼ B ∈ mzPoly ⁡ 1 … N → t ∈ ℤ 1 … N ⟼ B : ℤ 1 … N ⟶ ℤ
18 17 ad2antlr ⊢ t ∈ ℤ 1 … N ⟼ A ∈ mzPoly ⁡ 1 … N ∧ t ∈ ℤ 1 … N ⟼ B ∈ mzPoly ⁡ 1 … N ∧ t ∈ ℕ 0 1 … N → t ∈ ℤ 1 … N ⟼ B : ℤ 1 … N ⟶ ℤ
19 mptfcl ⊢ t ∈ ℤ 1 … N ⟼ B : ℤ 1 … N ⟶ ℤ → t ∈ ℤ 1 … N → B ∈ ℤ
20 18 13 19 sylc ⊢ t ∈ ℤ 1 … N ⟼ A ∈ mzPoly ⁡ 1 … N ∧ t ∈ ℤ 1 … N ⟼ B ∈ mzPoly ⁡ 1 … N ∧ t ∈ ℕ 0 1 … N → B ∈ ℤ
21 20 zcnd ⊢ t ∈ ℤ 1 … N ⟼ A ∈ mzPoly ⁡ 1 … N ∧ t ∈ ℤ 1 … N ⟼ B ∈ mzPoly ⁡ 1 … N ∧ t ∈ ℕ 0 1 … N → B ∈ ℂ
22 16 21 subeq0ad ⊢ t ∈ ℤ 1 … N ⟼ A ∈ mzPoly ⁡ 1 … N ∧ t ∈ ℤ 1 … N ⟼ B ∈ mzPoly ⁡ 1 … N ∧ t ∈ ℕ 0 1 … N → A − B = 0 ↔ A = B
23 22 bicomd ⊢ t ∈ ℤ 1 … N ⟼ A ∈ mzPoly ⁡ 1 … N ∧ t ∈ ℤ 1 … N ⟼ B ∈ mzPoly ⁡ 1 … N ∧ t ∈ ℕ 0 1 … N → A = B ↔ A − B = 0
24 23 ex ⊢ t ∈ ℤ 1 … N ⟼ A ∈ mzPoly ⁡ 1 … N ∧ t ∈ ℤ 1 … N ⟼ B ∈ mzPoly ⁡ 1 … N → t ∈ ℕ 0 1 … N → A = B ↔ A − B = 0
25 5 24 ralrimi ⊢ t ∈ ℤ 1 … N ⟼ A ∈ mzPoly ⁡ 1 … N ∧ t ∈ ℤ 1 … N ⟼ B ∈ mzPoly ⁡ 1 … N → ∀ t ∈ ℕ 0 1 … N A = B ↔ A − B = 0
26 rabbi ⊢ ∀ t ∈ ℕ 0 1 … N A = B ↔ A − B = 0 ↔ t ∈ ℕ 0 1 … N | A = B = t ∈ ℕ 0 1 … N | A − B = 0
27 25 26 sylib ⊢ t ∈ ℤ 1 … N ⟼ A ∈ mzPoly ⁡ 1 … N ∧ t ∈ ℤ 1 … N ⟼ B ∈ mzPoly ⁡ 1 … N → t ∈ ℕ 0 1 … N | A = B = t ∈ ℕ 0 1 … N | A − B = 0
28 27 3adant1 ⊢ N ∈ ℕ 0 ∧ t ∈ ℤ 1 … N ⟼ A ∈ mzPoly ⁡ 1 … N ∧ t ∈ ℤ 1 … N ⟼ B ∈ mzPoly ⁡ 1 … N → t ∈ ℕ 0 1 … N | A = B = t ∈ ℕ 0 1 … N | A − B = 0
29 simp1 ⊢ N ∈ ℕ 0 ∧ t ∈ ℤ 1 … N ⟼ A ∈ mzPoly ⁡ 1 … N ∧ t ∈ ℤ 1 … N ⟼ B ∈ mzPoly ⁡ 1 … N → N ∈ ℕ 0
30 mzpsubmpt ⊢ t ∈ ℤ 1 … N ⟼ A ∈ mzPoly ⁡ 1 … N ∧ t ∈ ℤ 1 … N ⟼ B ∈ mzPoly ⁡ 1 … N → t ∈ ℤ 1 … N ⟼ A − B ∈ mzPoly ⁡ 1 … N
31 30 3adant1 ⊢ N ∈ ℕ 0 ∧ t ∈ ℤ 1 … N ⟼ A ∈ mzPoly ⁡ 1 … N ∧ t ∈ ℤ 1 … N ⟼ B ∈ mzPoly ⁡ 1 … N → t ∈ ℤ 1 … N ⟼ A − B ∈ mzPoly ⁡ 1 … N
32 eq0rabdioph ⊢ N ∈ ℕ 0 ∧ t ∈ ℤ 1 … N ⟼ A − B ∈ mzPoly ⁡ 1 … N → t ∈ ℕ 0 1 … N | A − B = 0 ∈ Dioph ⁡ N
33 29 31 32 syl2anc ⊢ N ∈ ℕ 0 ∧ t ∈ ℤ 1 … N ⟼ A ∈ mzPoly ⁡ 1 … N ∧ t ∈ ℤ 1 … N ⟼ B ∈ mzPoly ⁡ 1 … N → t ∈ ℕ 0 1 … N | A − B = 0 ∈ Dioph ⁡ N
34 28 33 eqeltrd ⊢ N ∈ ℕ 0 ∧ t ∈ ℤ 1 … N ⟼ A ∈ mzPoly ⁡ 1 … N ∧ t ∈ ℤ 1 … N ⟼ B ∈ mzPoly ⁡ 1 … N → t ∈ ℕ 0 1 … N | A = B ∈ Dioph ⁡ N