| Step | Hyp | Ref | Expression | 
						
							| 1 |  | zringbas |  |-  ZZ = ( Base ` ZZring ) | 
						
							| 2 |  | eqid |  |-  ( I eval ZZring ) = ( I eval ZZring ) | 
						
							| 3 | 2 1 | evlval |  |-  ( I eval ZZring ) = ( ( I evalSub ZZring ) ` ZZ ) | 
						
							| 4 | 3 | rneqi |  |-  ran ( I eval ZZring ) = ran ( ( I evalSub ZZring ) ` ZZ ) | 
						
							| 5 |  | simpl |  |-  ( ( I e. _V /\ f e. ZZ ) -> I e. _V ) | 
						
							| 6 |  | zringcrng |  |-  ZZring e. CRing | 
						
							| 7 | 6 | a1i |  |-  ( ( I e. _V /\ f e. ZZ ) -> ZZring e. CRing ) | 
						
							| 8 |  | zringring |  |-  ZZring e. Ring | 
						
							| 9 | 1 | subrgid |  |-  ( ZZring e. Ring -> ZZ e. ( SubRing ` ZZring ) ) | 
						
							| 10 | 8 9 | ax-mp |  |-  ZZ e. ( SubRing ` ZZring ) | 
						
							| 11 | 10 | a1i |  |-  ( ( I e. _V /\ f e. ZZ ) -> ZZ e. ( SubRing ` ZZring ) ) | 
						
							| 12 |  | simpr |  |-  ( ( I e. _V /\ f e. ZZ ) -> f e. ZZ ) | 
						
							| 13 | 1 4 5 7 11 12 | mpfconst |  |-  ( ( I e. _V /\ f e. ZZ ) -> ( ( ZZ ^m I ) X. { f } ) e. ran ( I eval ZZring ) ) | 
						
							| 14 |  | simpl |  |-  ( ( I e. _V /\ f e. I ) -> I e. _V ) | 
						
							| 15 | 6 | a1i |  |-  ( ( I e. _V /\ f e. I ) -> ZZring e. CRing ) | 
						
							| 16 | 10 | a1i |  |-  ( ( I e. _V /\ f e. I ) -> ZZ e. ( SubRing ` ZZring ) ) | 
						
							| 17 |  | simpr |  |-  ( ( I e. _V /\ f e. I ) -> f e. I ) | 
						
							| 18 | 1 4 14 15 16 17 | mpfproj |  |-  ( ( I e. _V /\ f e. I ) -> ( g e. ( ZZ ^m I ) |-> ( g ` f ) ) e. ran ( I eval ZZring ) ) | 
						
							| 19 |  | simp2r |  |-  ( ( I e. _V /\ ( f : ( ZZ ^m I ) --> ZZ /\ f e. ran ( I eval ZZring ) ) /\ ( g : ( ZZ ^m I ) --> ZZ /\ g e. ran ( I eval ZZring ) ) ) -> f e. ran ( I eval ZZring ) ) | 
						
							| 20 |  | simp3r |  |-  ( ( I e. _V /\ ( f : ( ZZ ^m I ) --> ZZ /\ f e. ran ( I eval ZZring ) ) /\ ( g : ( ZZ ^m I ) --> ZZ /\ g e. ran ( I eval ZZring ) ) ) -> g e. ran ( I eval ZZring ) ) | 
						
							| 21 |  | zringplusg |  |-  + = ( +g ` ZZring ) | 
						
							| 22 | 4 21 | mpfaddcl |  |-  ( ( f e. ran ( I eval ZZring ) /\ g e. ran ( I eval ZZring ) ) -> ( f oF + g ) e. ran ( I eval ZZring ) ) | 
						
							| 23 | 19 20 22 | syl2anc |  |-  ( ( I e. _V /\ ( f : ( ZZ ^m I ) --> ZZ /\ f e. ran ( I eval ZZring ) ) /\ ( g : ( ZZ ^m I ) --> ZZ /\ g e. ran ( I eval ZZring ) ) ) -> ( f oF + g ) e. ran ( I eval ZZring ) ) | 
						
							| 24 |  | zringmulr |  |-  x. = ( .r ` ZZring ) | 
						
							| 25 | 4 24 | mpfmulcl |  |-  ( ( f e. ran ( I eval ZZring ) /\ g e. ran ( I eval ZZring ) ) -> ( f oF x. g ) e. ran ( I eval ZZring ) ) | 
						
							| 26 | 19 20 25 | syl2anc |  |-  ( ( I e. _V /\ ( f : ( ZZ ^m I ) --> ZZ /\ f e. ran ( I eval ZZring ) ) /\ ( g : ( ZZ ^m I ) --> ZZ /\ g e. ran ( I eval ZZring ) ) ) -> ( f oF x. g ) e. ran ( I eval ZZring ) ) | 
						
							| 27 |  | eleq1 |  |-  ( b = ( ( ZZ ^m I ) X. { f } ) -> ( b e. ran ( I eval ZZring ) <-> ( ( ZZ ^m I ) X. { f } ) e. ran ( I eval ZZring ) ) ) | 
						
							| 28 |  | eleq1 |  |-  ( b = ( g e. ( ZZ ^m I ) |-> ( g ` f ) ) -> ( b e. ran ( I eval ZZring ) <-> ( g e. ( ZZ ^m I ) |-> ( g ` f ) ) e. ran ( I eval ZZring ) ) ) | 
						
							| 29 |  | eleq1 |  |-  ( b = f -> ( b e. ran ( I eval ZZring ) <-> f e. ran ( I eval ZZring ) ) ) | 
						
							| 30 |  | eleq1 |  |-  ( b = g -> ( b e. ran ( I eval ZZring ) <-> g e. ran ( I eval ZZring ) ) ) | 
						
							| 31 |  | eleq1 |  |-  ( b = ( f oF + g ) -> ( b e. ran ( I eval ZZring ) <-> ( f oF + g ) e. ran ( I eval ZZring ) ) ) | 
						
							| 32 |  | eleq1 |  |-  ( b = ( f oF x. g ) -> ( b e. ran ( I eval ZZring ) <-> ( f oF x. g ) e. ran ( I eval ZZring ) ) ) | 
						
							| 33 |  | eleq1 |  |-  ( b = a -> ( b e. ran ( I eval ZZring ) <-> a e. ran ( I eval ZZring ) ) ) | 
						
							| 34 | 13 18 23 26 27 28 29 30 31 32 33 | mzpindd |  |-  ( ( I e. _V /\ a e. ( mzPoly ` I ) ) -> a e. ran ( I eval ZZring ) ) | 
						
							| 35 |  | simprlr |  |-  ( ( ( I e. _V /\ a e. ran ( I eval ZZring ) ) /\ ( ( x e. ran ( I eval ZZring ) /\ x e. ( mzPoly ` I ) ) /\ ( y e. ran ( I eval ZZring ) /\ y e. ( mzPoly ` I ) ) ) ) -> x e. ( mzPoly ` I ) ) | 
						
							| 36 |  | simprrr |  |-  ( ( ( I e. _V /\ a e. ran ( I eval ZZring ) ) /\ ( ( x e. ran ( I eval ZZring ) /\ x e. ( mzPoly ` I ) ) /\ ( y e. ran ( I eval ZZring ) /\ y e. ( mzPoly ` I ) ) ) ) -> y e. ( mzPoly ` I ) ) | 
						
							| 37 |  | mzpadd |  |-  ( ( x e. ( mzPoly ` I ) /\ y e. ( mzPoly ` I ) ) -> ( x oF + y ) e. ( mzPoly ` I ) ) | 
						
							| 38 | 35 36 37 | syl2anc |  |-  ( ( ( I e. _V /\ a e. ran ( I eval ZZring ) ) /\ ( ( x e. ran ( I eval ZZring ) /\ x e. ( mzPoly ` I ) ) /\ ( y e. ran ( I eval ZZring ) /\ y e. ( mzPoly ` I ) ) ) ) -> ( x oF + y ) e. ( mzPoly ` I ) ) | 
						
							| 39 |  | mzpmul |  |-  ( ( x e. ( mzPoly ` I ) /\ y e. ( mzPoly ` I ) ) -> ( x oF x. y ) e. ( mzPoly ` I ) ) | 
						
							| 40 | 35 36 39 | syl2anc |  |-  ( ( ( I e. _V /\ a e. ran ( I eval ZZring ) ) /\ ( ( x e. ran ( I eval ZZring ) /\ x e. ( mzPoly ` I ) ) /\ ( y e. ran ( I eval ZZring ) /\ y e. ( mzPoly ` I ) ) ) ) -> ( x oF x. y ) e. ( mzPoly ` I ) ) | 
						
							| 41 |  | eleq1 |  |-  ( b = ( ( ZZ ^m I ) X. { x } ) -> ( b e. ( mzPoly ` I ) <-> ( ( ZZ ^m I ) X. { x } ) e. ( mzPoly ` I ) ) ) | 
						
							| 42 |  | eleq1 |  |-  ( b = ( y e. ( ZZ ^m I ) |-> ( y ` x ) ) -> ( b e. ( mzPoly ` I ) <-> ( y e. ( ZZ ^m I ) |-> ( y ` x ) ) e. ( mzPoly ` I ) ) ) | 
						
							| 43 |  | eleq1 |  |-  ( b = x -> ( b e. ( mzPoly ` I ) <-> x e. ( mzPoly ` I ) ) ) | 
						
							| 44 |  | eleq1 |  |-  ( b = y -> ( b e. ( mzPoly ` I ) <-> y e. ( mzPoly ` I ) ) ) | 
						
							| 45 |  | eleq1 |  |-  ( b = ( x oF + y ) -> ( b e. ( mzPoly ` I ) <-> ( x oF + y ) e. ( mzPoly ` I ) ) ) | 
						
							| 46 |  | eleq1 |  |-  ( b = ( x oF x. y ) -> ( b e. ( mzPoly ` I ) <-> ( x oF x. y ) e. ( mzPoly ` I ) ) ) | 
						
							| 47 |  | eleq1 |  |-  ( b = a -> ( b e. ( mzPoly ` I ) <-> a e. ( mzPoly ` I ) ) ) | 
						
							| 48 |  | mzpconst |  |-  ( ( I e. _V /\ x e. ZZ ) -> ( ( ZZ ^m I ) X. { x } ) e. ( mzPoly ` I ) ) | 
						
							| 49 | 48 | adantlr |  |-  ( ( ( I e. _V /\ a e. ran ( I eval ZZring ) ) /\ x e. ZZ ) -> ( ( ZZ ^m I ) X. { x } ) e. ( mzPoly ` I ) ) | 
						
							| 50 |  | mzpproj |  |-  ( ( I e. _V /\ x e. I ) -> ( y e. ( ZZ ^m I ) |-> ( y ` x ) ) e. ( mzPoly ` I ) ) | 
						
							| 51 | 50 | adantlr |  |-  ( ( ( I e. _V /\ a e. ran ( I eval ZZring ) ) /\ x e. I ) -> ( y e. ( ZZ ^m I ) |-> ( y ` x ) ) e. ( mzPoly ` I ) ) | 
						
							| 52 |  | simpr |  |-  ( ( I e. _V /\ a e. ran ( I eval ZZring ) ) -> a e. ran ( I eval ZZring ) ) | 
						
							| 53 | 1 21 24 4 38 40 41 42 43 44 45 46 47 49 51 52 | mpfind |  |-  ( ( I e. _V /\ a e. ran ( I eval ZZring ) ) -> a e. ( mzPoly ` I ) ) | 
						
							| 54 | 34 53 | impbida |  |-  ( I e. _V -> ( a e. ( mzPoly ` I ) <-> a e. ran ( I eval ZZring ) ) ) | 
						
							| 55 | 54 | eqrdv |  |-  ( I e. _V -> ( mzPoly ` I ) = ran ( I eval ZZring ) ) | 
						
							| 56 |  | fvprc |  |-  ( -. I e. _V -> ( mzPoly ` I ) = (/) ) | 
						
							| 57 |  | df-evl |  |-  eval = ( a e. _V , b e. _V |-> ( ( a evalSub b ) ` ( Base ` b ) ) ) | 
						
							| 58 | 57 | reldmmpo |  |-  Rel dom eval | 
						
							| 59 | 58 | ovprc1 |  |-  ( -. I e. _V -> ( I eval ZZring ) = (/) ) | 
						
							| 60 | 59 | rneqd |  |-  ( -. I e. _V -> ran ( I eval ZZring ) = ran (/) ) | 
						
							| 61 |  | rn0 |  |-  ran (/) = (/) | 
						
							| 62 | 60 61 | eqtrdi |  |-  ( -. I e. _V -> ran ( I eval ZZring ) = (/) ) | 
						
							| 63 | 56 62 | eqtr4d |  |-  ( -. I e. _V -> ( mzPoly ` I ) = ran ( I eval ZZring ) ) | 
						
							| 64 | 55 63 | pm2.61i |  |-  ( mzPoly ` I ) = ran ( I eval ZZring ) |