| Step | Hyp | Ref | Expression | 
						
							| 1 |  | coefv0.1 |  |-  A = ( coeff ` F ) | 
						
							| 2 |  | coeadd.2 |  |-  B = ( coeff ` G ) | 
						
							| 3 |  | coeadd.3 |  |-  M = ( deg ` F ) | 
						
							| 4 |  | coeadd.4 |  |-  N = ( deg ` G ) | 
						
							| 5 |  | plymulcl |  |-  ( ( F e. ( Poly ` S ) /\ G e. ( Poly ` S ) ) -> ( F oF x. G ) e. ( Poly ` CC ) ) | 
						
							| 6 |  | dgrcl |  |-  ( F e. ( Poly ` S ) -> ( deg ` F ) e. NN0 ) | 
						
							| 7 | 3 6 | eqeltrid |  |-  ( F e. ( Poly ` S ) -> M e. NN0 ) | 
						
							| 8 |  | dgrcl |  |-  ( G e. ( Poly ` S ) -> ( deg ` G ) e. NN0 ) | 
						
							| 9 | 4 8 | eqeltrid |  |-  ( G e. ( Poly ` S ) -> N e. NN0 ) | 
						
							| 10 |  | nn0addcl |  |-  ( ( M e. NN0 /\ N e. NN0 ) -> ( M + N ) e. NN0 ) | 
						
							| 11 | 7 9 10 | syl2an |  |-  ( ( F e. ( Poly ` S ) /\ G e. ( Poly ` S ) ) -> ( M + N ) e. NN0 ) | 
						
							| 12 |  | fzfid |  |-  ( ( ( F e. ( Poly ` S ) /\ G e. ( Poly ` S ) ) /\ n e. NN0 ) -> ( 0 ... n ) e. Fin ) | 
						
							| 13 | 1 | coef3 |  |-  ( F e. ( Poly ` S ) -> A : NN0 --> CC ) | 
						
							| 14 | 13 | adantr |  |-  ( ( F e. ( Poly ` S ) /\ G e. ( Poly ` S ) ) -> A : NN0 --> CC ) | 
						
							| 15 | 14 | adantr |  |-  ( ( ( F e. ( Poly ` S ) /\ G e. ( Poly ` S ) ) /\ n e. NN0 ) -> A : NN0 --> CC ) | 
						
							| 16 |  | elfznn0 |  |-  ( k e. ( 0 ... n ) -> k e. NN0 ) | 
						
							| 17 |  | ffvelcdm |  |-  ( ( A : NN0 --> CC /\ k e. NN0 ) -> ( A ` k ) e. CC ) | 
						
							| 18 | 15 16 17 | syl2an |  |-  ( ( ( ( F e. ( Poly ` S ) /\ G e. ( Poly ` S ) ) /\ n e. NN0 ) /\ k e. ( 0 ... n ) ) -> ( A ` k ) e. CC ) | 
						
							| 19 | 2 | coef3 |  |-  ( G e. ( Poly ` S ) -> B : NN0 --> CC ) | 
						
							| 20 | 19 | adantl |  |-  ( ( F e. ( Poly ` S ) /\ G e. ( Poly ` S ) ) -> B : NN0 --> CC ) | 
						
							| 21 | 20 | ad2antrr |  |-  ( ( ( ( F e. ( Poly ` S ) /\ G e. ( Poly ` S ) ) /\ n e. NN0 ) /\ k e. ( 0 ... n ) ) -> B : NN0 --> CC ) | 
						
							| 22 |  | fznn0sub |  |-  ( k e. ( 0 ... n ) -> ( n - k ) e. NN0 ) | 
						
							| 23 | 22 | adantl |  |-  ( ( ( ( F e. ( Poly ` S ) /\ G e. ( Poly ` S ) ) /\ n e. NN0 ) /\ k e. ( 0 ... n ) ) -> ( n - k ) e. NN0 ) | 
						
							| 24 | 21 23 | ffvelcdmd |  |-  ( ( ( ( F e. ( Poly ` S ) /\ G e. ( Poly ` S ) ) /\ n e. NN0 ) /\ k e. ( 0 ... n ) ) -> ( B ` ( n - k ) ) e. CC ) | 
						
							| 25 | 18 24 | mulcld |  |-  ( ( ( ( F e. ( Poly ` S ) /\ G e. ( Poly ` S ) ) /\ n e. NN0 ) /\ k e. ( 0 ... n ) ) -> ( ( A ` k ) x. ( B ` ( n - k ) ) ) e. CC ) | 
						
							| 26 | 12 25 | fsumcl |  |-  ( ( ( F e. ( Poly ` S ) /\ G e. ( Poly ` S ) ) /\ n e. NN0 ) -> sum_ k e. ( 0 ... n ) ( ( A ` k ) x. ( B ` ( n - k ) ) ) e. CC ) | 
						
							| 27 | 26 | fmpttd |  |-  ( ( F e. ( Poly ` S ) /\ G e. ( Poly ` S ) ) -> ( n e. NN0 |-> sum_ k e. ( 0 ... n ) ( ( A ` k ) x. ( B ` ( n - k ) ) ) ) : NN0 --> CC ) | 
						
							| 28 |  | oveq2 |  |-  ( n = j -> ( 0 ... n ) = ( 0 ... j ) ) | 
						
							| 29 |  | fvoveq1 |  |-  ( n = j -> ( B ` ( n - k ) ) = ( B ` ( j - k ) ) ) | 
						
							| 30 | 29 | oveq2d |  |-  ( n = j -> ( ( A ` k ) x. ( B ` ( n - k ) ) ) = ( ( A ` k ) x. ( B ` ( j - k ) ) ) ) | 
						
							| 31 | 30 | adantr |  |-  ( ( n = j /\ k e. ( 0 ... n ) ) -> ( ( A ` k ) x. ( B ` ( n - k ) ) ) = ( ( A ` k ) x. ( B ` ( j - k ) ) ) ) | 
						
							| 32 | 28 31 | sumeq12dv |  |-  ( n = j -> sum_ k e. ( 0 ... n ) ( ( A ` k ) x. ( B ` ( n - k ) ) ) = sum_ k e. ( 0 ... j ) ( ( A ` k ) x. ( B ` ( j - k ) ) ) ) | 
						
							| 33 |  | eqid |  |-  ( n e. NN0 |-> sum_ k e. ( 0 ... n ) ( ( A ` k ) x. ( B ` ( n - k ) ) ) ) = ( n e. NN0 |-> sum_ k e. ( 0 ... n ) ( ( A ` k ) x. ( B ` ( n - k ) ) ) ) | 
						
							| 34 |  | sumex |  |-  sum_ k e. ( 0 ... j ) ( ( A ` k ) x. ( B ` ( j - k ) ) ) e. _V | 
						
							| 35 | 32 33 34 | fvmpt |  |-  ( j e. NN0 -> ( ( n e. NN0 |-> sum_ k e. ( 0 ... n ) ( ( A ` k ) x. ( B ` ( n - k ) ) ) ) ` j ) = sum_ k e. ( 0 ... j ) ( ( A ` k ) x. ( B ` ( j - k ) ) ) ) | 
						
							| 36 | 35 | ad2antrl |  |-  ( ( ( F e. ( Poly ` S ) /\ G e. ( Poly ` S ) ) /\ ( j e. NN0 /\ -. j <_ ( M + N ) ) ) -> ( ( n e. NN0 |-> sum_ k e. ( 0 ... n ) ( ( A ` k ) x. ( B ` ( n - k ) ) ) ) ` j ) = sum_ k e. ( 0 ... j ) ( ( A ` k ) x. ( B ` ( j - k ) ) ) ) | 
						
							| 37 |  | simp2r |  |-  ( ( ( F e. ( Poly ` S ) /\ G e. ( Poly ` S ) ) /\ ( j e. NN0 /\ -. j <_ ( M + N ) ) /\ ( k e. ( 0 ... j ) /\ k <_ M ) ) -> -. j <_ ( M + N ) ) | 
						
							| 38 |  | simp2l |  |-  ( ( ( F e. ( Poly ` S ) /\ G e. ( Poly ` S ) ) /\ ( j e. NN0 /\ -. j <_ ( M + N ) ) /\ ( k e. ( 0 ... j ) /\ k <_ M ) ) -> j e. NN0 ) | 
						
							| 39 | 38 | nn0red |  |-  ( ( ( F e. ( Poly ` S ) /\ G e. ( Poly ` S ) ) /\ ( j e. NN0 /\ -. j <_ ( M + N ) ) /\ ( k e. ( 0 ... j ) /\ k <_ M ) ) -> j e. RR ) | 
						
							| 40 |  | simp3l |  |-  ( ( ( F e. ( Poly ` S ) /\ G e. ( Poly ` S ) ) /\ ( j e. NN0 /\ -. j <_ ( M + N ) ) /\ ( k e. ( 0 ... j ) /\ k <_ M ) ) -> k e. ( 0 ... j ) ) | 
						
							| 41 |  | elfznn0 |  |-  ( k e. ( 0 ... j ) -> k e. NN0 ) | 
						
							| 42 | 40 41 | syl |  |-  ( ( ( F e. ( Poly ` S ) /\ G e. ( Poly ` S ) ) /\ ( j e. NN0 /\ -. j <_ ( M + N ) ) /\ ( k e. ( 0 ... j ) /\ k <_ M ) ) -> k e. NN0 ) | 
						
							| 43 | 42 | nn0red |  |-  ( ( ( F e. ( Poly ` S ) /\ G e. ( Poly ` S ) ) /\ ( j e. NN0 /\ -. j <_ ( M + N ) ) /\ ( k e. ( 0 ... j ) /\ k <_ M ) ) -> k e. RR ) | 
						
							| 44 | 9 | adantl |  |-  ( ( F e. ( Poly ` S ) /\ G e. ( Poly ` S ) ) -> N e. NN0 ) | 
						
							| 45 | 44 | 3ad2ant1 |  |-  ( ( ( F e. ( Poly ` S ) /\ G e. ( Poly ` S ) ) /\ ( j e. NN0 /\ -. j <_ ( M + N ) ) /\ ( k e. ( 0 ... j ) /\ k <_ M ) ) -> N e. NN0 ) | 
						
							| 46 | 45 | nn0red |  |-  ( ( ( F e. ( Poly ` S ) /\ G e. ( Poly ` S ) ) /\ ( j e. NN0 /\ -. j <_ ( M + N ) ) /\ ( k e. ( 0 ... j ) /\ k <_ M ) ) -> N e. RR ) | 
						
							| 47 | 39 43 46 | lesubadd2d |  |-  ( ( ( F e. ( Poly ` S ) /\ G e. ( Poly ` S ) ) /\ ( j e. NN0 /\ -. j <_ ( M + N ) ) /\ ( k e. ( 0 ... j ) /\ k <_ M ) ) -> ( ( j - k ) <_ N <-> j <_ ( k + N ) ) ) | 
						
							| 48 | 7 | adantr |  |-  ( ( F e. ( Poly ` S ) /\ G e. ( Poly ` S ) ) -> M e. NN0 ) | 
						
							| 49 | 48 | 3ad2ant1 |  |-  ( ( ( F e. ( Poly ` S ) /\ G e. ( Poly ` S ) ) /\ ( j e. NN0 /\ -. j <_ ( M + N ) ) /\ ( k e. ( 0 ... j ) /\ k <_ M ) ) -> M e. NN0 ) | 
						
							| 50 | 49 | nn0red |  |-  ( ( ( F e. ( Poly ` S ) /\ G e. ( Poly ` S ) ) /\ ( j e. NN0 /\ -. j <_ ( M + N ) ) /\ ( k e. ( 0 ... j ) /\ k <_ M ) ) -> M e. RR ) | 
						
							| 51 |  | simp3r |  |-  ( ( ( F e. ( Poly ` S ) /\ G e. ( Poly ` S ) ) /\ ( j e. NN0 /\ -. j <_ ( M + N ) ) /\ ( k e. ( 0 ... j ) /\ k <_ M ) ) -> k <_ M ) | 
						
							| 52 | 43 50 46 51 | leadd1dd |  |-  ( ( ( F e. ( Poly ` S ) /\ G e. ( Poly ` S ) ) /\ ( j e. NN0 /\ -. j <_ ( M + N ) ) /\ ( k e. ( 0 ... j ) /\ k <_ M ) ) -> ( k + N ) <_ ( M + N ) ) | 
						
							| 53 | 43 46 | readdcld |  |-  ( ( ( F e. ( Poly ` S ) /\ G e. ( Poly ` S ) ) /\ ( j e. NN0 /\ -. j <_ ( M + N ) ) /\ ( k e. ( 0 ... j ) /\ k <_ M ) ) -> ( k + N ) e. RR ) | 
						
							| 54 | 50 46 | readdcld |  |-  ( ( ( F e. ( Poly ` S ) /\ G e. ( Poly ` S ) ) /\ ( j e. NN0 /\ -. j <_ ( M + N ) ) /\ ( k e. ( 0 ... j ) /\ k <_ M ) ) -> ( M + N ) e. RR ) | 
						
							| 55 |  | letr |  |-  ( ( j e. RR /\ ( k + N ) e. RR /\ ( M + N ) e. RR ) -> ( ( j <_ ( k + N ) /\ ( k + N ) <_ ( M + N ) ) -> j <_ ( M + N ) ) ) | 
						
							| 56 | 39 53 54 55 | syl3anc |  |-  ( ( ( F e. ( Poly ` S ) /\ G e. ( Poly ` S ) ) /\ ( j e. NN0 /\ -. j <_ ( M + N ) ) /\ ( k e. ( 0 ... j ) /\ k <_ M ) ) -> ( ( j <_ ( k + N ) /\ ( k + N ) <_ ( M + N ) ) -> j <_ ( M + N ) ) ) | 
						
							| 57 | 52 56 | mpan2d |  |-  ( ( ( F e. ( Poly ` S ) /\ G e. ( Poly ` S ) ) /\ ( j e. NN0 /\ -. j <_ ( M + N ) ) /\ ( k e. ( 0 ... j ) /\ k <_ M ) ) -> ( j <_ ( k + N ) -> j <_ ( M + N ) ) ) | 
						
							| 58 | 47 57 | sylbid |  |-  ( ( ( F e. ( Poly ` S ) /\ G e. ( Poly ` S ) ) /\ ( j e. NN0 /\ -. j <_ ( M + N ) ) /\ ( k e. ( 0 ... j ) /\ k <_ M ) ) -> ( ( j - k ) <_ N -> j <_ ( M + N ) ) ) | 
						
							| 59 | 37 58 | mtod |  |-  ( ( ( F e. ( Poly ` S ) /\ G e. ( Poly ` S ) ) /\ ( j e. NN0 /\ -. j <_ ( M + N ) ) /\ ( k e. ( 0 ... j ) /\ k <_ M ) ) -> -. ( j - k ) <_ N ) | 
						
							| 60 |  | simpr |  |-  ( ( F e. ( Poly ` S ) /\ G e. ( Poly ` S ) ) -> G e. ( Poly ` S ) ) | 
						
							| 61 | 60 | 3ad2ant1 |  |-  ( ( ( F e. ( Poly ` S ) /\ G e. ( Poly ` S ) ) /\ ( j e. NN0 /\ -. j <_ ( M + N ) ) /\ ( k e. ( 0 ... j ) /\ k <_ M ) ) -> G e. ( Poly ` S ) ) | 
						
							| 62 |  | fznn0sub |  |-  ( k e. ( 0 ... j ) -> ( j - k ) e. NN0 ) | 
						
							| 63 | 40 62 | syl |  |-  ( ( ( F e. ( Poly ` S ) /\ G e. ( Poly ` S ) ) /\ ( j e. NN0 /\ -. j <_ ( M + N ) ) /\ ( k e. ( 0 ... j ) /\ k <_ M ) ) -> ( j - k ) e. NN0 ) | 
						
							| 64 | 2 4 | dgrub |  |-  ( ( G e. ( Poly ` S ) /\ ( j - k ) e. NN0 /\ ( B ` ( j - k ) ) =/= 0 ) -> ( j - k ) <_ N ) | 
						
							| 65 | 64 | 3expia |  |-  ( ( G e. ( Poly ` S ) /\ ( j - k ) e. NN0 ) -> ( ( B ` ( j - k ) ) =/= 0 -> ( j - k ) <_ N ) ) | 
						
							| 66 | 61 63 65 | syl2anc |  |-  ( ( ( F e. ( Poly ` S ) /\ G e. ( Poly ` S ) ) /\ ( j e. NN0 /\ -. j <_ ( M + N ) ) /\ ( k e. ( 0 ... j ) /\ k <_ M ) ) -> ( ( B ` ( j - k ) ) =/= 0 -> ( j - k ) <_ N ) ) | 
						
							| 67 | 66 | necon1bd |  |-  ( ( ( F e. ( Poly ` S ) /\ G e. ( Poly ` S ) ) /\ ( j e. NN0 /\ -. j <_ ( M + N ) ) /\ ( k e. ( 0 ... j ) /\ k <_ M ) ) -> ( -. ( j - k ) <_ N -> ( B ` ( j - k ) ) = 0 ) ) | 
						
							| 68 | 59 67 | mpd |  |-  ( ( ( F e. ( Poly ` S ) /\ G e. ( Poly ` S ) ) /\ ( j e. NN0 /\ -. j <_ ( M + N ) ) /\ ( k e. ( 0 ... j ) /\ k <_ M ) ) -> ( B ` ( j - k ) ) = 0 ) | 
						
							| 69 | 68 | oveq2d |  |-  ( ( ( F e. ( Poly ` S ) /\ G e. ( Poly ` S ) ) /\ ( j e. NN0 /\ -. j <_ ( M + N ) ) /\ ( k e. ( 0 ... j ) /\ k <_ M ) ) -> ( ( A ` k ) x. ( B ` ( j - k ) ) ) = ( ( A ` k ) x. 0 ) ) | 
						
							| 70 | 14 | 3ad2ant1 |  |-  ( ( ( F e. ( Poly ` S ) /\ G e. ( Poly ` S ) ) /\ ( j e. NN0 /\ -. j <_ ( M + N ) ) /\ ( k e. ( 0 ... j ) /\ k <_ M ) ) -> A : NN0 --> CC ) | 
						
							| 71 | 70 42 | ffvelcdmd |  |-  ( ( ( F e. ( Poly ` S ) /\ G e. ( Poly ` S ) ) /\ ( j e. NN0 /\ -. j <_ ( M + N ) ) /\ ( k e. ( 0 ... j ) /\ k <_ M ) ) -> ( A ` k ) e. CC ) | 
						
							| 72 | 71 | mul01d |  |-  ( ( ( F e. ( Poly ` S ) /\ G e. ( Poly ` S ) ) /\ ( j e. NN0 /\ -. j <_ ( M + N ) ) /\ ( k e. ( 0 ... j ) /\ k <_ M ) ) -> ( ( A ` k ) x. 0 ) = 0 ) | 
						
							| 73 | 69 72 | eqtrd |  |-  ( ( ( F e. ( Poly ` S ) /\ G e. ( Poly ` S ) ) /\ ( j e. NN0 /\ -. j <_ ( M + N ) ) /\ ( k e. ( 0 ... j ) /\ k <_ M ) ) -> ( ( A ` k ) x. ( B ` ( j - k ) ) ) = 0 ) | 
						
							| 74 | 73 | 3expia |  |-  ( ( ( F e. ( Poly ` S ) /\ G e. ( Poly ` S ) ) /\ ( j e. NN0 /\ -. j <_ ( M + N ) ) ) -> ( ( k e. ( 0 ... j ) /\ k <_ M ) -> ( ( A ` k ) x. ( B ` ( j - k ) ) ) = 0 ) ) | 
						
							| 75 | 74 | impl |  |-  ( ( ( ( ( F e. ( Poly ` S ) /\ G e. ( Poly ` S ) ) /\ ( j e. NN0 /\ -. j <_ ( M + N ) ) ) /\ k e. ( 0 ... j ) ) /\ k <_ M ) -> ( ( A ` k ) x. ( B ` ( j - k ) ) ) = 0 ) | 
						
							| 76 |  | simpl |  |-  ( ( F e. ( Poly ` S ) /\ G e. ( Poly ` S ) ) -> F e. ( Poly ` S ) ) | 
						
							| 77 | 76 | adantr |  |-  ( ( ( F e. ( Poly ` S ) /\ G e. ( Poly ` S ) ) /\ ( j e. NN0 /\ -. j <_ ( M + N ) ) ) -> F e. ( Poly ` S ) ) | 
						
							| 78 | 1 3 | dgrub |  |-  ( ( F e. ( Poly ` S ) /\ k e. NN0 /\ ( A ` k ) =/= 0 ) -> k <_ M ) | 
						
							| 79 | 78 | 3expia |  |-  ( ( F e. ( Poly ` S ) /\ k e. NN0 ) -> ( ( A ` k ) =/= 0 -> k <_ M ) ) | 
						
							| 80 | 77 41 79 | syl2an |  |-  ( ( ( ( F e. ( Poly ` S ) /\ G e. ( Poly ` S ) ) /\ ( j e. NN0 /\ -. j <_ ( M + N ) ) ) /\ k e. ( 0 ... j ) ) -> ( ( A ` k ) =/= 0 -> k <_ M ) ) | 
						
							| 81 | 80 | necon1bd |  |-  ( ( ( ( F e. ( Poly ` S ) /\ G e. ( Poly ` S ) ) /\ ( j e. NN0 /\ -. j <_ ( M + N ) ) ) /\ k e. ( 0 ... j ) ) -> ( -. k <_ M -> ( A ` k ) = 0 ) ) | 
						
							| 82 | 81 | imp |  |-  ( ( ( ( ( F e. ( Poly ` S ) /\ G e. ( Poly ` S ) ) /\ ( j e. NN0 /\ -. j <_ ( M + N ) ) ) /\ k e. ( 0 ... j ) ) /\ -. k <_ M ) -> ( A ` k ) = 0 ) | 
						
							| 83 | 82 | oveq1d |  |-  ( ( ( ( ( F e. ( Poly ` S ) /\ G e. ( Poly ` S ) ) /\ ( j e. NN0 /\ -. j <_ ( M + N ) ) ) /\ k e. ( 0 ... j ) ) /\ -. k <_ M ) -> ( ( A ` k ) x. ( B ` ( j - k ) ) ) = ( 0 x. ( B ` ( j - k ) ) ) ) | 
						
							| 84 | 20 | ad3antrrr |  |-  ( ( ( ( ( F e. ( Poly ` S ) /\ G e. ( Poly ` S ) ) /\ ( j e. NN0 /\ -. j <_ ( M + N ) ) ) /\ k e. ( 0 ... j ) ) /\ -. k <_ M ) -> B : NN0 --> CC ) | 
						
							| 85 | 62 | ad2antlr |  |-  ( ( ( ( ( F e. ( Poly ` S ) /\ G e. ( Poly ` S ) ) /\ ( j e. NN0 /\ -. j <_ ( M + N ) ) ) /\ k e. ( 0 ... j ) ) /\ -. k <_ M ) -> ( j - k ) e. NN0 ) | 
						
							| 86 | 84 85 | ffvelcdmd |  |-  ( ( ( ( ( F e. ( Poly ` S ) /\ G e. ( Poly ` S ) ) /\ ( j e. NN0 /\ -. j <_ ( M + N ) ) ) /\ k e. ( 0 ... j ) ) /\ -. k <_ M ) -> ( B ` ( j - k ) ) e. CC ) | 
						
							| 87 | 86 | mul02d |  |-  ( ( ( ( ( F e. ( Poly ` S ) /\ G e. ( Poly ` S ) ) /\ ( j e. NN0 /\ -. j <_ ( M + N ) ) ) /\ k e. ( 0 ... j ) ) /\ -. k <_ M ) -> ( 0 x. ( B ` ( j - k ) ) ) = 0 ) | 
						
							| 88 | 83 87 | eqtrd |  |-  ( ( ( ( ( F e. ( Poly ` S ) /\ G e. ( Poly ` S ) ) /\ ( j e. NN0 /\ -. j <_ ( M + N ) ) ) /\ k e. ( 0 ... j ) ) /\ -. k <_ M ) -> ( ( A ` k ) x. ( B ` ( j - k ) ) ) = 0 ) | 
						
							| 89 | 75 88 | pm2.61dan |  |-  ( ( ( ( F e. ( Poly ` S ) /\ G e. ( Poly ` S ) ) /\ ( j e. NN0 /\ -. j <_ ( M + N ) ) ) /\ k e. ( 0 ... j ) ) -> ( ( A ` k ) x. ( B ` ( j - k ) ) ) = 0 ) | 
						
							| 90 | 89 | sumeq2dv |  |-  ( ( ( F e. ( Poly ` S ) /\ G e. ( Poly ` S ) ) /\ ( j e. NN0 /\ -. j <_ ( M + N ) ) ) -> sum_ k e. ( 0 ... j ) ( ( A ` k ) x. ( B ` ( j - k ) ) ) = sum_ k e. ( 0 ... j ) 0 ) | 
						
							| 91 |  | fzfi |  |-  ( 0 ... j ) e. Fin | 
						
							| 92 | 91 | olci |  |-  ( ( 0 ... j ) C_ ( ZZ>= ` 0 ) \/ ( 0 ... j ) e. Fin ) | 
						
							| 93 |  | sumz |  |-  ( ( ( 0 ... j ) C_ ( ZZ>= ` 0 ) \/ ( 0 ... j ) e. Fin ) -> sum_ k e. ( 0 ... j ) 0 = 0 ) | 
						
							| 94 | 92 93 | ax-mp |  |-  sum_ k e. ( 0 ... j ) 0 = 0 | 
						
							| 95 | 90 94 | eqtrdi |  |-  ( ( ( F e. ( Poly ` S ) /\ G e. ( Poly ` S ) ) /\ ( j e. NN0 /\ -. j <_ ( M + N ) ) ) -> sum_ k e. ( 0 ... j ) ( ( A ` k ) x. ( B ` ( j - k ) ) ) = 0 ) | 
						
							| 96 | 36 95 | eqtrd |  |-  ( ( ( F e. ( Poly ` S ) /\ G e. ( Poly ` S ) ) /\ ( j e. NN0 /\ -. j <_ ( M + N ) ) ) -> ( ( n e. NN0 |-> sum_ k e. ( 0 ... n ) ( ( A ` k ) x. ( B ` ( n - k ) ) ) ) ` j ) = 0 ) | 
						
							| 97 | 96 | expr |  |-  ( ( ( F e. ( Poly ` S ) /\ G e. ( Poly ` S ) ) /\ j e. NN0 ) -> ( -. j <_ ( M + N ) -> ( ( n e. NN0 |-> sum_ k e. ( 0 ... n ) ( ( A ` k ) x. ( B ` ( n - k ) ) ) ) ` j ) = 0 ) ) | 
						
							| 98 | 97 | necon1ad |  |-  ( ( ( F e. ( Poly ` S ) /\ G e. ( Poly ` S ) ) /\ j e. NN0 ) -> ( ( ( n e. NN0 |-> sum_ k e. ( 0 ... n ) ( ( A ` k ) x. ( B ` ( n - k ) ) ) ) ` j ) =/= 0 -> j <_ ( M + N ) ) ) | 
						
							| 99 | 98 | ralrimiva |  |-  ( ( F e. ( Poly ` S ) /\ G e. ( Poly ` S ) ) -> A. j e. NN0 ( ( ( n e. NN0 |-> sum_ k e. ( 0 ... n ) ( ( A ` k ) x. ( B ` ( n - k ) ) ) ) ` j ) =/= 0 -> j <_ ( M + N ) ) ) | 
						
							| 100 |  | plyco0 |  |-  ( ( ( M + N ) e. NN0 /\ ( n e. NN0 |-> sum_ k e. ( 0 ... n ) ( ( A ` k ) x. ( B ` ( n - k ) ) ) ) : NN0 --> CC ) -> ( ( ( n e. NN0 |-> sum_ k e. ( 0 ... n ) ( ( A ` k ) x. ( B ` ( n - k ) ) ) ) " ( ZZ>= ` ( ( M + N ) + 1 ) ) ) = { 0 } <-> A. j e. NN0 ( ( ( n e. NN0 |-> sum_ k e. ( 0 ... n ) ( ( A ` k ) x. ( B ` ( n - k ) ) ) ) ` j ) =/= 0 -> j <_ ( M + N ) ) ) ) | 
						
							| 101 | 11 27 100 | syl2anc |  |-  ( ( F e. ( Poly ` S ) /\ G e. ( Poly ` S ) ) -> ( ( ( n e. NN0 |-> sum_ k e. ( 0 ... n ) ( ( A ` k ) x. ( B ` ( n - k ) ) ) ) " ( ZZ>= ` ( ( M + N ) + 1 ) ) ) = { 0 } <-> A. j e. NN0 ( ( ( n e. NN0 |-> sum_ k e. ( 0 ... n ) ( ( A ` k ) x. ( B ` ( n - k ) ) ) ) ` j ) =/= 0 -> j <_ ( M + N ) ) ) ) | 
						
							| 102 | 99 101 | mpbird |  |-  ( ( F e. ( Poly ` S ) /\ G e. ( Poly ` S ) ) -> ( ( n e. NN0 |-> sum_ k e. ( 0 ... n ) ( ( A ` k ) x. ( B ` ( n - k ) ) ) ) " ( ZZ>= ` ( ( M + N ) + 1 ) ) ) = { 0 } ) | 
						
							| 103 | 1 3 | dgrub2 |  |-  ( F e. ( Poly ` S ) -> ( A " ( ZZ>= ` ( M + 1 ) ) ) = { 0 } ) | 
						
							| 104 | 103 | adantr |  |-  ( ( F e. ( Poly ` S ) /\ G e. ( Poly ` S ) ) -> ( A " ( ZZ>= ` ( M + 1 ) ) ) = { 0 } ) | 
						
							| 105 | 2 4 | dgrub2 |  |-  ( G e. ( Poly ` S ) -> ( B " ( ZZ>= ` ( N + 1 ) ) ) = { 0 } ) | 
						
							| 106 | 105 | adantl |  |-  ( ( F e. ( Poly ` S ) /\ G e. ( Poly ` S ) ) -> ( B " ( ZZ>= ` ( N + 1 ) ) ) = { 0 } ) | 
						
							| 107 | 1 3 | coeid |  |-  ( F e. ( Poly ` S ) -> F = ( z e. CC |-> sum_ k e. ( 0 ... M ) ( ( A ` k ) x. ( z ^ k ) ) ) ) | 
						
							| 108 | 107 | adantr |  |-  ( ( F e. ( Poly ` S ) /\ G e. ( Poly ` S ) ) -> F = ( z e. CC |-> sum_ k e. ( 0 ... M ) ( ( A ` k ) x. ( z ^ k ) ) ) ) | 
						
							| 109 | 2 4 | coeid |  |-  ( G e. ( Poly ` S ) -> G = ( z e. CC |-> sum_ k e. ( 0 ... N ) ( ( B ` k ) x. ( z ^ k ) ) ) ) | 
						
							| 110 | 109 | adantl |  |-  ( ( F e. ( Poly ` S ) /\ G e. ( Poly ` S ) ) -> G = ( z e. CC |-> sum_ k e. ( 0 ... N ) ( ( B ` k ) x. ( z ^ k ) ) ) ) | 
						
							| 111 | 76 60 48 44 14 20 104 106 108 110 | plymullem1 |  |-  ( ( F e. ( Poly ` S ) /\ G e. ( Poly ` S ) ) -> ( F oF x. G ) = ( z e. CC |-> sum_ j e. ( 0 ... ( M + N ) ) ( sum_ k e. ( 0 ... j ) ( ( A ` k ) x. ( B ` ( j - k ) ) ) x. ( z ^ j ) ) ) ) | 
						
							| 112 |  | elfznn0 |  |-  ( j e. ( 0 ... ( M + N ) ) -> j e. NN0 ) | 
						
							| 113 | 112 35 | syl |  |-  ( j e. ( 0 ... ( M + N ) ) -> ( ( n e. NN0 |-> sum_ k e. ( 0 ... n ) ( ( A ` k ) x. ( B ` ( n - k ) ) ) ) ` j ) = sum_ k e. ( 0 ... j ) ( ( A ` k ) x. ( B ` ( j - k ) ) ) ) | 
						
							| 114 | 113 | oveq1d |  |-  ( j e. ( 0 ... ( M + N ) ) -> ( ( ( n e. NN0 |-> sum_ k e. ( 0 ... n ) ( ( A ` k ) x. ( B ` ( n - k ) ) ) ) ` j ) x. ( z ^ j ) ) = ( sum_ k e. ( 0 ... j ) ( ( A ` k ) x. ( B ` ( j - k ) ) ) x. ( z ^ j ) ) ) | 
						
							| 115 | 114 | sumeq2i |  |-  sum_ j e. ( 0 ... ( M + N ) ) ( ( ( n e. NN0 |-> sum_ k e. ( 0 ... n ) ( ( A ` k ) x. ( B ` ( n - k ) ) ) ) ` j ) x. ( z ^ j ) ) = sum_ j e. ( 0 ... ( M + N ) ) ( sum_ k e. ( 0 ... j ) ( ( A ` k ) x. ( B ` ( j - k ) ) ) x. ( z ^ j ) ) | 
						
							| 116 | 115 | mpteq2i |  |-  ( z e. CC |-> sum_ j e. ( 0 ... ( M + N ) ) ( ( ( n e. NN0 |-> sum_ k e. ( 0 ... n ) ( ( A ` k ) x. ( B ` ( n - k ) ) ) ) ` j ) x. ( z ^ j ) ) ) = ( z e. CC |-> sum_ j e. ( 0 ... ( M + N ) ) ( sum_ k e. ( 0 ... j ) ( ( A ` k ) x. ( B ` ( j - k ) ) ) x. ( z ^ j ) ) ) | 
						
							| 117 | 111 116 | eqtr4di |  |-  ( ( F e. ( Poly ` S ) /\ G e. ( Poly ` S ) ) -> ( F oF x. G ) = ( z e. CC |-> sum_ j e. ( 0 ... ( M + N ) ) ( ( ( n e. NN0 |-> sum_ k e. ( 0 ... n ) ( ( A ` k ) x. ( B ` ( n - k ) ) ) ) ` j ) x. ( z ^ j ) ) ) ) | 
						
							| 118 | 5 11 27 102 117 | coeeq |  |-  ( ( F e. ( Poly ` S ) /\ G e. ( Poly ` S ) ) -> ( coeff ` ( F oF x. G ) ) = ( n e. NN0 |-> sum_ k e. ( 0 ... n ) ( ( A ` k ) x. ( B ` ( n - k ) ) ) ) ) | 
						
							| 119 |  | ffvelcdm |  |-  ( ( ( n e. NN0 |-> sum_ k e. ( 0 ... n ) ( ( A ` k ) x. ( B ` ( n - k ) ) ) ) : NN0 --> CC /\ j e. NN0 ) -> ( ( n e. NN0 |-> sum_ k e. ( 0 ... n ) ( ( A ` k ) x. ( B ` ( n - k ) ) ) ) ` j ) e. CC ) | 
						
							| 120 | 27 112 119 | syl2an |  |-  ( ( ( F e. ( Poly ` S ) /\ G e. ( Poly ` S ) ) /\ j e. ( 0 ... ( M + N ) ) ) -> ( ( n e. NN0 |-> sum_ k e. ( 0 ... n ) ( ( A ` k ) x. ( B ` ( n - k ) ) ) ) ` j ) e. CC ) | 
						
							| 121 | 5 11 120 117 | dgrle |  |-  ( ( F e. ( Poly ` S ) /\ G e. ( Poly ` S ) ) -> ( deg ` ( F oF x. G ) ) <_ ( M + N ) ) | 
						
							| 122 | 118 121 | jca |  |-  ( ( F e. ( Poly ` S ) /\ G e. ( Poly ` S ) ) -> ( ( coeff ` ( F oF x. G ) ) = ( n e. NN0 |-> sum_ k e. ( 0 ... n ) ( ( A ` k ) x. ( B ` ( n - k ) ) ) ) /\ ( deg ` ( F oF x. G ) ) <_ ( M + N ) ) ) |