Metamath Proof Explorer


Theorem elplyd

Description: Sufficient condition for elementhood in the set of polynomials. (Contributed by Mario Carneiro, 17-Jul-2014)

Ref Expression
Hypotheses elplyd.1
|- ( ph -> S C_ CC )
elplyd.2
|- ( ph -> N e. NN0 )
elplyd.3
|- ( ( ph /\ k e. ( 0 ... N ) ) -> A e. S )
Assertion elplyd
|- ( ph -> ( z e. CC |-> sum_ k e. ( 0 ... N ) ( A x. ( z ^ k ) ) ) e. ( Poly ` S ) )

Proof

Step Hyp Ref Expression
1 elplyd.1
 |-  ( ph -> S C_ CC )
2 elplyd.2
 |-  ( ph -> N e. NN0 )
3 elplyd.3
 |-  ( ( ph /\ k e. ( 0 ... N ) ) -> A e. S )
4 nffvmpt1
 |-  F/_ k ( ( k e. NN0 |-> if ( k e. ( 0 ... N ) , A , 0 ) ) ` j )
5 nfcv
 |-  F/_ k x.
6 nfcv
 |-  F/_ k ( z ^ j )
7 4 5 6 nfov
 |-  F/_ k ( ( ( k e. NN0 |-> if ( k e. ( 0 ... N ) , A , 0 ) ) ` j ) x. ( z ^ j ) )
8 nfcv
 |-  F/_ j ( ( ( k e. NN0 |-> if ( k e. ( 0 ... N ) , A , 0 ) ) ` k ) x. ( z ^ k ) )
9 fveq2
 |-  ( j = k -> ( ( k e. NN0 |-> if ( k e. ( 0 ... N ) , A , 0 ) ) ` j ) = ( ( k e. NN0 |-> if ( k e. ( 0 ... N ) , A , 0 ) ) ` k ) )
10 oveq2
 |-  ( j = k -> ( z ^ j ) = ( z ^ k ) )
11 9 10 oveq12d
 |-  ( j = k -> ( ( ( k e. NN0 |-> if ( k e. ( 0 ... N ) , A , 0 ) ) ` j ) x. ( z ^ j ) ) = ( ( ( k e. NN0 |-> if ( k e. ( 0 ... N ) , A , 0 ) ) ` k ) x. ( z ^ k ) ) )
12 7 8 11 cbvsumi
 |-  sum_ j e. ( 0 ... N ) ( ( ( k e. NN0 |-> if ( k e. ( 0 ... N ) , A , 0 ) ) ` j ) x. ( z ^ j ) ) = sum_ k e. ( 0 ... N ) ( ( ( k e. NN0 |-> if ( k e. ( 0 ... N ) , A , 0 ) ) ` k ) x. ( z ^ k ) )
13 elfznn0
 |-  ( k e. ( 0 ... N ) -> k e. NN0 )
14 iftrue
 |-  ( k e. ( 0 ... N ) -> if ( k e. ( 0 ... N ) , A , 0 ) = A )
15 14 adantl
 |-  ( ( ph /\ k e. ( 0 ... N ) ) -> if ( k e. ( 0 ... N ) , A , 0 ) = A )
16 15 3 eqeltrd
 |-  ( ( ph /\ k e. ( 0 ... N ) ) -> if ( k e. ( 0 ... N ) , A , 0 ) e. S )
17 eqid
 |-  ( k e. NN0 |-> if ( k e. ( 0 ... N ) , A , 0 ) ) = ( k e. NN0 |-> if ( k e. ( 0 ... N ) , A , 0 ) )
18 17 fvmpt2
 |-  ( ( k e. NN0 /\ if ( k e. ( 0 ... N ) , A , 0 ) e. S ) -> ( ( k e. NN0 |-> if ( k e. ( 0 ... N ) , A , 0 ) ) ` k ) = if ( k e. ( 0 ... N ) , A , 0 ) )
19 13 16 18 syl2an2
 |-  ( ( ph /\ k e. ( 0 ... N ) ) -> ( ( k e. NN0 |-> if ( k e. ( 0 ... N ) , A , 0 ) ) ` k ) = if ( k e. ( 0 ... N ) , A , 0 ) )
20 19 15 eqtrd
 |-  ( ( ph /\ k e. ( 0 ... N ) ) -> ( ( k e. NN0 |-> if ( k e. ( 0 ... N ) , A , 0 ) ) ` k ) = A )
21 20 oveq1d
 |-  ( ( ph /\ k e. ( 0 ... N ) ) -> ( ( ( k e. NN0 |-> if ( k e. ( 0 ... N ) , A , 0 ) ) ` k ) x. ( z ^ k ) ) = ( A x. ( z ^ k ) ) )
22 21 sumeq2dv
 |-  ( ph -> sum_ k e. ( 0 ... N ) ( ( ( k e. NN0 |-> if ( k e. ( 0 ... N ) , A , 0 ) ) ` k ) x. ( z ^ k ) ) = sum_ k e. ( 0 ... N ) ( A x. ( z ^ k ) ) )
23 12 22 eqtrid
 |-  ( ph -> sum_ j e. ( 0 ... N ) ( ( ( k e. NN0 |-> if ( k e. ( 0 ... N ) , A , 0 ) ) ` j ) x. ( z ^ j ) ) = sum_ k e. ( 0 ... N ) ( A x. ( z ^ k ) ) )
24 23 mpteq2dv
 |-  ( ph -> ( z e. CC |-> sum_ j e. ( 0 ... N ) ( ( ( k e. NN0 |-> if ( k e. ( 0 ... N ) , A , 0 ) ) ` j ) x. ( z ^ j ) ) ) = ( z e. CC |-> sum_ k e. ( 0 ... N ) ( A x. ( z ^ k ) ) ) )
25 0cnd
 |-  ( ph -> 0 e. CC )
26 25 snssd
 |-  ( ph -> { 0 } C_ CC )
27 1 26 unssd
 |-  ( ph -> ( S u. { 0 } ) C_ CC )
28 elun1
 |-  ( A e. S -> A e. ( S u. { 0 } ) )
29 3 28 syl
 |-  ( ( ph /\ k e. ( 0 ... N ) ) -> A e. ( S u. { 0 } ) )
30 29 adantlr
 |-  ( ( ( ph /\ k e. NN0 ) /\ k e. ( 0 ... N ) ) -> A e. ( S u. { 0 } ) )
31 ssun2
 |-  { 0 } C_ ( S u. { 0 } )
32 c0ex
 |-  0 e. _V
33 32 snss
 |-  ( 0 e. ( S u. { 0 } ) <-> { 0 } C_ ( S u. { 0 } ) )
34 31 33 mpbir
 |-  0 e. ( S u. { 0 } )
35 34 a1i
 |-  ( ( ( ph /\ k e. NN0 ) /\ -. k e. ( 0 ... N ) ) -> 0 e. ( S u. { 0 } ) )
36 30 35 ifclda
 |-  ( ( ph /\ k e. NN0 ) -> if ( k e. ( 0 ... N ) , A , 0 ) e. ( S u. { 0 } ) )
37 36 fmpttd
 |-  ( ph -> ( k e. NN0 |-> if ( k e. ( 0 ... N ) , A , 0 ) ) : NN0 --> ( S u. { 0 } ) )
38 elplyr
 |-  ( ( ( S u. { 0 } ) C_ CC /\ N e. NN0 /\ ( k e. NN0 |-> if ( k e. ( 0 ... N ) , A , 0 ) ) : NN0 --> ( S u. { 0 } ) ) -> ( z e. CC |-> sum_ j e. ( 0 ... N ) ( ( ( k e. NN0 |-> if ( k e. ( 0 ... N ) , A , 0 ) ) ` j ) x. ( z ^ j ) ) ) e. ( Poly ` ( S u. { 0 } ) ) )
39 27 2 37 38 syl3anc
 |-  ( ph -> ( z e. CC |-> sum_ j e. ( 0 ... N ) ( ( ( k e. NN0 |-> if ( k e. ( 0 ... N ) , A , 0 ) ) ` j ) x. ( z ^ j ) ) ) e. ( Poly ` ( S u. { 0 } ) ) )
40 24 39 eqeltrrd
 |-  ( ph -> ( z e. CC |-> sum_ k e. ( 0 ... N ) ( A x. ( z ^ k ) ) ) e. ( Poly ` ( S u. { 0 } ) ) )
41 plyun0
 |-  ( Poly ` ( S u. { 0 } ) ) = ( Poly ` S )
42 40 41 eleqtrdi
 |-  ( ph -> ( z e. CC |-> sum_ k e. ( 0 ... N ) ( A x. ( z ^ k ) ) ) e. ( Poly ` S ) )