Metamath Proof Explorer


Theorem mzpmfp

Description: Relationship between multivariate Z-polynomials and general multivariate polynomial functions. (Contributed by Stefan O'Rear, 20-Mar-2015) (Revised by AV, 13-Jun-2019)

Ref Expression
Assertion mzpmfp ⊢ mzPoly ⁡ I = ran ⁡ I eval ℤ ring

Proof

Step Hyp Ref Expression
1 zringbas ⊢ ℤ = Base ℤ ring
2 eqid ⊢ I eval ℤ ring = I eval ℤ ring
3 2 1 evlval ⊢ I eval ℤ ring = I evalSub ℤ ring ⁡ ℤ
4 3 rneqi ⊢ ran ⁡ I eval ℤ ring = ran ⁡ I evalSub ℤ ring ⁡ ℤ
5 simpl ⊢ I ∈ V ∧ f ∈ ℤ → I ∈ V
6 zringcrng ⊢ ℤ ring ∈ CRing
7 6 a1i ⊢ I ∈ V ∧ f ∈ ℤ → ℤ ring ∈ CRing
8 zringring ⊢ ℤ ring ∈ Ring
9 1 subrgid ⊢ ℤ ring ∈ Ring → ℤ ∈ SubRing ⁡ ℤ ring
10 8 9 ax-mp ⊢ ℤ ∈ SubRing ⁡ ℤ ring
11 10 a1i ⊢ I ∈ V ∧ f ∈ ℤ → ℤ ∈ SubRing ⁡ ℤ ring
12 simpr ⊢ I ∈ V ∧ f ∈ ℤ → f ∈ ℤ
13 1 4 5 7 11 12 mpfconst ⊢ I ∈ V ∧ f ∈ ℤ → ℤ I × f ∈ ran ⁡ I eval ℤ ring
14 simpl ⊢ I ∈ V ∧ f ∈ I → I ∈ V
15 6 a1i ⊢ I ∈ V ∧ f ∈ I → ℤ ring ∈ CRing
16 10 a1i ⊢ I ∈ V ∧ f ∈ I → ℤ ∈ SubRing ⁡ ℤ ring
17 simpr ⊢ I ∈ V ∧ f ∈ I → f ∈ I
18 1 4 14 15 16 17 mpfproj ⊢ I ∈ V ∧ f ∈ I → g ∈ ℤ I ⟼ g ⁡ f ∈ ran ⁡ I eval ℤ ring
19 simp2r ⊢ I ∈ V ∧ f : ℤ I ⟶ ℤ ∧ f ∈ ran ⁡ I eval ℤ ring ∧ g : ℤ I ⟶ ℤ ∧ g ∈ ran ⁡ I eval ℤ ring → f ∈ ran ⁡ I eval ℤ ring
20 simp3r ⊢ I ∈ V ∧ f : ℤ I ⟶ ℤ ∧ f ∈ ran ⁡ I eval ℤ ring ∧ g : ℤ I ⟶ ℤ ∧ g ∈ ran ⁡ I eval ℤ ring → g ∈ ran ⁡ I eval ℤ ring
21 zringplusg ⊢ + = + ℤ ring
22 4 21 mpfaddcl ⊢ f ∈ ran ⁡ I eval ℤ ring ∧ g ∈ ran ⁡ I eval ℤ ring → f + f g ∈ ran ⁡ I eval ℤ ring
23 19 20 22 syl2anc ⊢ I ∈ V ∧ f : ℤ I ⟶ ℤ ∧ f ∈ ran ⁡ I eval ℤ ring ∧ g : ℤ I ⟶ ℤ ∧ g ∈ ran ⁡ I eval ℤ ring → f + f g ∈ ran ⁡ I eval ℤ ring
24 zringmulr ⊢ × = ⋅ ℤ ring
25 4 24 mpfmulcl ⊢ f ∈ ran ⁡ I eval ℤ ring ∧ g ∈ ran ⁡ I eval ℤ ring → f × f g ∈ ran ⁡ I eval ℤ ring
26 19 20 25 syl2anc ⊢ I ∈ V ∧ f : ℤ I ⟶ ℤ ∧ f ∈ ran ⁡ I eval ℤ ring ∧ g : ℤ I ⟶ ℤ ∧ g ∈ ran ⁡ I eval ℤ ring → f × f g ∈ ran ⁡ I eval ℤ ring
27 eleq1 ⊢ b = ℤ I × f → b ∈ ran ⁡ I eval ℤ ring ↔ ℤ I × f ∈ ran ⁡ I eval ℤ ring
28 eleq1 ⊢ b = g ∈ ℤ I ⟼ g ⁡ f → b ∈ ran ⁡ I eval ℤ ring ↔ g ∈ ℤ I ⟼ g ⁡ f ∈ ran ⁡ I eval ℤ ring
29 eleq1 ⊢ b = f → b ∈ ran ⁡ I eval ℤ ring ↔ f ∈ ran ⁡ I eval ℤ ring
30 eleq1 ⊢ b = g → b ∈ ran ⁡ I eval ℤ ring ↔ g ∈ ran ⁡ I eval ℤ ring
31 eleq1 ⊢ b = f + f g → b ∈ ran ⁡ I eval ℤ ring ↔ f + f g ∈ ran ⁡ I eval ℤ ring
32 eleq1 ⊢ b = f × f g → b ∈ ran ⁡ I eval ℤ ring ↔ f × f g ∈ ran ⁡ I eval ℤ ring
33 eleq1 ⊢ b = a → b ∈ ran ⁡ I eval ℤ ring ↔ a ∈ ran ⁡ I eval ℤ ring
34 13 18 23 26 27 28 29 30 31 32 33 mzpindd ⊢ I ∈ V ∧ a ∈ mzPoly ⁡ I → a ∈ ran ⁡ I eval ℤ ring
35 simprlr ⊢ I ∈ V ∧ a ∈ ran ⁡ I eval ℤ ring ∧ x ∈ ran ⁡ I eval ℤ ring ∧ x ∈ mzPoly ⁡ I ∧ y ∈ ran ⁡ I eval ℤ ring ∧ y ∈ mzPoly ⁡ I → x ∈ mzPoly ⁡ I
36 simprrr ⊢ I ∈ V ∧ a ∈ ran ⁡ I eval ℤ ring ∧ x ∈ ran ⁡ I eval ℤ ring ∧ x ∈ mzPoly ⁡ I ∧ y ∈ ran ⁡ I eval ℤ ring ∧ y ∈ mzPoly ⁡ I → y ∈ mzPoly ⁡ I
37 mzpadd ⊢ x ∈ mzPoly ⁡ I ∧ y ∈ mzPoly ⁡ I → x + f y ∈ mzPoly ⁡ I
38 35 36 37 syl2anc ⊢ I ∈ V ∧ a ∈ ran ⁡ I eval ℤ ring ∧ x ∈ ran ⁡ I eval ℤ ring ∧ x ∈ mzPoly ⁡ I ∧ y ∈ ran ⁡ I eval ℤ ring ∧ y ∈ mzPoly ⁡ I → x + f y ∈ mzPoly ⁡ I
39 mzpmul ⊢ x ∈ mzPoly ⁡ I ∧ y ∈ mzPoly ⁡ I → x × f y ∈ mzPoly ⁡ I
40 35 36 39 syl2anc ⊢ I ∈ V ∧ a ∈ ran ⁡ I eval ℤ ring ∧ x ∈ ran ⁡ I eval ℤ ring ∧ x ∈ mzPoly ⁡ I ∧ y ∈ ran ⁡ I eval ℤ ring ∧ y ∈ mzPoly ⁡ I → x × f y ∈ mzPoly ⁡ I
41 eleq1 ⊢ b = ℤ I × x → b ∈ mzPoly ⁡ I ↔ ℤ I × x ∈ mzPoly ⁡ I
42 eleq1 ⊢ b = y ∈ ℤ I ⟼ y ⁡ x → b ∈ mzPoly ⁡ I ↔ y ∈ ℤ I ⟼ y ⁡ x ∈ mzPoly ⁡ I
43 eleq1 ⊢ b = x → b ∈ mzPoly ⁡ I ↔ x ∈ mzPoly ⁡ I
44 eleq1 ⊢ b = y → b ∈ mzPoly ⁡ I ↔ y ∈ mzPoly ⁡ I
45 eleq1 ⊢ b = x + f y → b ∈ mzPoly ⁡ I ↔ x + f y ∈ mzPoly ⁡ I
46 eleq1 ⊢ b = x × f y → b ∈ mzPoly ⁡ I ↔ x × f y ∈ mzPoly ⁡ I
47 eleq1 ⊢ b = a → b ∈ mzPoly ⁡ I ↔ a ∈ mzPoly ⁡ I
48 mzpconst ⊢ I ∈ V ∧ x ∈ ℤ → ℤ I × x ∈ mzPoly ⁡ I
49 48 adantlr ⊢ I ∈ V ∧ a ∈ ran ⁡ I eval ℤ ring ∧ x ∈ ℤ → ℤ I × x ∈ mzPoly ⁡ I
50 mzpproj ⊢ I ∈ V ∧ x ∈ I → y ∈ ℤ I ⟼ y ⁡ x ∈ mzPoly ⁡ I
51 50 adantlr ⊢ I ∈ V ∧ a ∈ ran ⁡ I eval ℤ ring ∧ x ∈ I → y ∈ ℤ I ⟼ y ⁡ x ∈ mzPoly ⁡ I
52 simpr ⊢ I ∈ V ∧ a ∈ ran ⁡ I eval ℤ ring → a ∈ ran ⁡ I eval ℤ ring
53 1 21 24 4 38 40 41 42 43 44 45 46 47 49 51 52 mpfind ⊢ I ∈ V ∧ a ∈ ran ⁡ I eval ℤ ring → a ∈ mzPoly ⁡ I
54 34 53 impbida ⊢ I ∈ V → a ∈ mzPoly ⁡ I ↔ a ∈ ran ⁡ I eval ℤ ring
55 54 eqrdv ⊢ I ∈ V → mzPoly ⁡ I = ran ⁡ I eval ℤ ring
56 fvprc ⊢ ¬ I ∈ V → mzPoly ⁡ I = ∅
57 df-evl ⊢ eval = a ∈ V , b ∈ V ⟼ a evalSub b ⁡ Base b
58 57 reldmmpo ⊢ Rel ⁡ dom ⁡ eval
59 58 ovprc1 ⊢ ¬ I ∈ V → I eval ℤ ring = ∅
60 59 rneqd ⊢ ¬ I ∈ V → ran ⁡ I eval ℤ ring = ran ⁡ ∅
61 rn0 ⊢ ran ⁡ ∅ = ∅
62 60 61 eqtrdi ⊢ ¬ I ∈ V → ran ⁡ I eval ℤ ring = ∅
63 56 62 eqtr4d ⊢ ¬ I ∈ V → mzPoly ⁡ I = ran ⁡ I eval ℤ ring
64 55 63 pm2.61i ⊢ mzPoly ⁡ I = ran ⁡ I eval ℤ ring