This is an inofficial mirror of http://metamath.tirix.org for personal testing of a visualizer extension only.
Description: If a polynomial is zero at every point (or even just zero at the positive integers), then all the coefficients must be zero. This is the basis for the method of equating coefficients of equal polynomials, and ensures that df-coe is well-defined. (Contributed by Mario Carneiro, 22-Jul-2014)
| Ref | Expression | ||
|---|---|---|---|
| Hypotheses | plyeq0.1 | |- ( ph -> S C_ CC ) |
|
| plyeq0.2 | |- ( ph -> N e. NN0 ) |
||
| plyeq0.3 | |- ( ph -> A e. ( ( S u. { 0 } ) ^m NN0 ) ) |
||
| plyeq0.4 | |- ( ph -> ( A " ( ZZ>= ` ( N + 1 ) ) ) = { 0 } ) |
||
| plyeq0.5 | |- ( ph -> 0p = ( z e. CC |-> sum_ k e. ( 0 ... N ) ( ( A ` k ) x. ( z ^ k ) ) ) ) |
||
| Assertion | plyeq0 | |- ( ph -> A = ( NN0 X. { 0 } ) ) |
| Step | Hyp | Ref | Expression |
|---|---|---|---|
| 1 | plyeq0.1 | |- ( ph -> S C_ CC ) |
|
| 2 | plyeq0.2 | |- ( ph -> N e. NN0 ) |
|
| 3 | plyeq0.3 | |- ( ph -> A e. ( ( S u. { 0 } ) ^m NN0 ) ) |
|
| 4 | plyeq0.4 | |- ( ph -> ( A " ( ZZ>= ` ( N + 1 ) ) ) = { 0 } ) |
|
| 5 | plyeq0.5 | |- ( ph -> 0p = ( z e. CC |-> sum_ k e. ( 0 ... N ) ( ( A ` k ) x. ( z ^ k ) ) ) ) |
|
| 6 | 0cnd | |- ( ph -> 0 e. CC ) |
|
| 7 | 6 | snssd | |- ( ph -> { 0 } C_ CC ) |
| 8 | 1 7 | unssd | |- ( ph -> ( S u. { 0 } ) C_ CC ) |
| 9 | cnex | |- CC e. _V |
|
| 10 | ssexg | |- ( ( ( S u. { 0 } ) C_ CC /\ CC e. _V ) -> ( S u. { 0 } ) e. _V ) |
|
| 11 | 8 9 10 | sylancl | |- ( ph -> ( S u. { 0 } ) e. _V ) |
| 12 | nn0ex | |- NN0 e. _V |
|
| 13 | elmapg | |- ( ( ( S u. { 0 } ) e. _V /\ NN0 e. _V ) -> ( A e. ( ( S u. { 0 } ) ^m NN0 ) <-> A : NN0 --> ( S u. { 0 } ) ) ) |
|
| 14 | 11 12 13 | sylancl | |- ( ph -> ( A e. ( ( S u. { 0 } ) ^m NN0 ) <-> A : NN0 --> ( S u. { 0 } ) ) ) |
| 15 | 3 14 | mpbid | |- ( ph -> A : NN0 --> ( S u. { 0 } ) ) |
| 16 | 15 | ffnd | |- ( ph -> A Fn NN0 ) |
| 17 | imadmrn | |- ( A " dom A ) = ran A |
|
| 18 | fdm | |- ( A : NN0 --> ( S u. { 0 } ) -> dom A = NN0 ) |
|
| 19 | fimacnv | |- ( A : NN0 --> ( S u. { 0 } ) -> ( `' A " ( S u. { 0 } ) ) = NN0 ) |
|
| 20 | 18 19 | eqtr4d | |- ( A : NN0 --> ( S u. { 0 } ) -> dom A = ( `' A " ( S u. { 0 } ) ) ) |
| 21 | 15 20 | syl | |- ( ph -> dom A = ( `' A " ( S u. { 0 } ) ) ) |
| 22 | simpr | |- ( ( ph /\ ( `' A " ( S \ { 0 } ) ) = (/) ) -> ( `' A " ( S \ { 0 } ) ) = (/) ) |
|
| 23 | 1 | adantr | |- ( ( ph /\ ( `' A " ( S \ { 0 } ) ) =/= (/) ) -> S C_ CC ) |
| 24 | 2 | adantr | |- ( ( ph /\ ( `' A " ( S \ { 0 } ) ) =/= (/) ) -> N e. NN0 ) |
| 25 | 3 | adantr | |- ( ( ph /\ ( `' A " ( S \ { 0 } ) ) =/= (/) ) -> A e. ( ( S u. { 0 } ) ^m NN0 ) ) |
| 26 | 4 | adantr | |- ( ( ph /\ ( `' A " ( S \ { 0 } ) ) =/= (/) ) -> ( A " ( ZZ>= ` ( N + 1 ) ) ) = { 0 } ) |
| 27 | 5 | adantr | |- ( ( ph /\ ( `' A " ( S \ { 0 } ) ) =/= (/) ) -> 0p = ( z e. CC |-> sum_ k e. ( 0 ... N ) ( ( A ` k ) x. ( z ^ k ) ) ) ) |
| 28 | eqid | |- sup ( ( `' A " ( S \ { 0 } ) ) , RR , < ) = sup ( ( `' A " ( S \ { 0 } ) ) , RR , < ) |
|
| 29 | simpr | |- ( ( ph /\ ( `' A " ( S \ { 0 } ) ) =/= (/) ) -> ( `' A " ( S \ { 0 } ) ) =/= (/) ) |
|
| 30 | 23 24 25 26 27 28 29 | plyeq0lem | |- -. ( ph /\ ( `' A " ( S \ { 0 } ) ) =/= (/) ) |
| 31 | 30 | pm2.21i | |- ( ( ph /\ ( `' A " ( S \ { 0 } ) ) =/= (/) ) -> ( `' A " ( S \ { 0 } ) ) = (/) ) |
| 32 | 22 31 | pm2.61dane | |- ( ph -> ( `' A " ( S \ { 0 } ) ) = (/) ) |
| 33 | 32 | uneq1d | |- ( ph -> ( ( `' A " ( S \ { 0 } ) ) u. ( `' A " { 0 } ) ) = ( (/) u. ( `' A " { 0 } ) ) ) |
| 34 | undif1 | |- ( ( S \ { 0 } ) u. { 0 } ) = ( S u. { 0 } ) |
|
| 35 | 34 | imaeq2i | |- ( `' A " ( ( S \ { 0 } ) u. { 0 } ) ) = ( `' A " ( S u. { 0 } ) ) |
| 36 | imaundi | |- ( `' A " ( ( S \ { 0 } ) u. { 0 } ) ) = ( ( `' A " ( S \ { 0 } ) ) u. ( `' A " { 0 } ) ) |
|
| 37 | 35 36 | eqtr3i | |- ( `' A " ( S u. { 0 } ) ) = ( ( `' A " ( S \ { 0 } ) ) u. ( `' A " { 0 } ) ) |
| 38 | un0 | |- ( ( `' A " { 0 } ) u. (/) ) = ( `' A " { 0 } ) |
|
| 39 | uncom | |- ( ( `' A " { 0 } ) u. (/) ) = ( (/) u. ( `' A " { 0 } ) ) |
|
| 40 | 38 39 | eqtr3i | |- ( `' A " { 0 } ) = ( (/) u. ( `' A " { 0 } ) ) |
| 41 | 33 37 40 | 3eqtr4g | |- ( ph -> ( `' A " ( S u. { 0 } ) ) = ( `' A " { 0 } ) ) |
| 42 | 21 41 | eqtrd | |- ( ph -> dom A = ( `' A " { 0 } ) ) |
| 43 | eqimss | |- ( dom A = ( `' A " { 0 } ) -> dom A C_ ( `' A " { 0 } ) ) |
|
| 44 | 42 43 | syl | |- ( ph -> dom A C_ ( `' A " { 0 } ) ) |
| 45 | 15 | ffund | |- ( ph -> Fun A ) |
| 46 | ssid | |- dom A C_ dom A |
|
| 47 | funimass3 | |- ( ( Fun A /\ dom A C_ dom A ) -> ( ( A " dom A ) C_ { 0 } <-> dom A C_ ( `' A " { 0 } ) ) ) |
|
| 48 | 45 46 47 | sylancl | |- ( ph -> ( ( A " dom A ) C_ { 0 } <-> dom A C_ ( `' A " { 0 } ) ) ) |
| 49 | 44 48 | mpbird | |- ( ph -> ( A " dom A ) C_ { 0 } ) |
| 50 | 17 49 | eqsstrrid | |- ( ph -> ran A C_ { 0 } ) |
| 51 | df-f | |- ( A : NN0 --> { 0 } <-> ( A Fn NN0 /\ ran A C_ { 0 } ) ) |
|
| 52 | 16 50 51 | sylanbrc | |- ( ph -> A : NN0 --> { 0 } ) |
| 53 | c0ex | |- 0 e. _V |
|
| 54 | 53 | fconst2 | |- ( A : NN0 --> { 0 } <-> A = ( NN0 X. { 0 } ) ) |
| 55 | 52 54 | sylib | |- ( ph -> A = ( NN0 X. { 0 } ) ) |