This is an inofficial mirror of http://metamath.tirix.org for personal testing of a visualizer extension only.
Description: Lemma for coemul and dgrmul . (Contributed by Mario Carneiro, 24-Jul-2014)
| Ref | Expression | ||
|---|---|---|---|
| Hypotheses | coefv0.1 | |- A = ( coeff ` F ) |
|
| coeadd.2 | |- B = ( coeff ` G ) |
||
| coeadd.3 | |- M = ( deg ` F ) |
||
| coeadd.4 | |- N = ( deg ` G ) |
||
| Assertion | coemullem | |- ( ( 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 ) ) ) |
| 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 ) ) ) |