Step |
Hyp |
Ref |
Expression |
1 |
|
prjcrv0.y |
|- Y = ( ( 0 ... N ) mPoly K ) |
2 |
|
prjcrv0.0 |
|- .0. = ( 0g ` Y ) |
3 |
|
prjcrv0.p |
|- P = ( N PrjSpn K ) |
4 |
|
prjcrv0.n |
|- ( ph -> N e. NN0 ) |
5 |
|
prjcrv0.k |
|- ( ph -> K e. Field ) |
6 |
|
eqid |
|- ( ( 0 ... N ) mHomP K ) = ( ( 0 ... N ) mHomP K ) |
7 |
|
eqid |
|- ( ( 0 ... N ) eval K ) = ( ( 0 ... N ) eval K ) |
8 |
|
eqid |
|- ( 0g ` K ) = ( 0g ` K ) |
9 |
|
funmpt |
|- Fun ( n e. NN0 |-> { f e. ( Base ` Y ) | ( f supp ( 0g ` K ) ) C_ { g e. { h e. ( NN0 ^m ( 0 ... N ) ) | ( `' h " NN ) e. Fin } | ( ( CCfld |`s NN0 ) gsum g ) = n } } ) |
10 |
|
eqid |
|- ( Base ` Y ) = ( Base ` Y ) |
11 |
|
eqid |
|- { h e. ( NN0 ^m ( 0 ... N ) ) | ( `' h " NN ) e. Fin } = { h e. ( NN0 ^m ( 0 ... N ) ) | ( `' h " NN ) e. Fin } |
12 |
|
ovexd |
|- ( ph -> ( 0 ... N ) e. _V ) |
13 |
6 1 10 8 11 12 5
|
mhpfval |
|- ( ph -> ( ( 0 ... N ) mHomP K ) = ( n e. NN0 |-> { f e. ( Base ` Y ) | ( f supp ( 0g ` K ) ) C_ { g e. { h e. ( NN0 ^m ( 0 ... N ) ) | ( `' h " NN ) e. Fin } | ( ( CCfld |`s NN0 ) gsum g ) = n } } ) ) |
14 |
13
|
funeqd |
|- ( ph -> ( Fun ( ( 0 ... N ) mHomP K ) <-> Fun ( n e. NN0 |-> { f e. ( Base ` Y ) | ( f supp ( 0g ` K ) ) C_ { g e. { h e. ( NN0 ^m ( 0 ... N ) ) | ( `' h " NN ) e. Fin } | ( ( CCfld |`s NN0 ) gsum g ) = n } } ) ) ) |
15 |
9 14
|
mpbiri |
|- ( ph -> Fun ( ( 0 ... N ) mHomP K ) ) |
16 |
5
|
fldcrngd |
|- ( ph -> K e. CRing ) |
17 |
16
|
crnggrpd |
|- ( ph -> K e. Grp ) |
18 |
1 11 8 2 12 17
|
mpl0 |
|- ( ph -> .0. = ( { h e. ( NN0 ^m ( 0 ... N ) ) | ( `' h " NN ) e. Fin } X. { ( 0g ` K ) } ) ) |
19 |
|
0nn0 |
|- 0 e. NN0 |
20 |
19
|
a1i |
|- ( ph -> 0 e. NN0 ) |
21 |
6 8 11 12 17 20
|
mhp0cl |
|- ( ph -> ( { h e. ( NN0 ^m ( 0 ... N ) ) | ( `' h " NN ) e. Fin } X. { ( 0g ` K ) } ) e. ( ( ( 0 ... N ) mHomP K ) ` 0 ) ) |
22 |
18 21
|
eqeltrd |
|- ( ph -> .0. e. ( ( ( 0 ... N ) mHomP K ) ` 0 ) ) |
23 |
|
elunirn2 |
|- ( ( Fun ( ( 0 ... N ) mHomP K ) /\ .0. e. ( ( ( 0 ... N ) mHomP K ) ` 0 ) ) -> .0. e. U. ran ( ( 0 ... N ) mHomP K ) ) |
24 |
15 22 23
|
syl2anc |
|- ( ph -> .0. e. U. ran ( ( 0 ... N ) mHomP K ) ) |
25 |
6 7 3 8 4 5 24
|
prjcrvval |
|- ( ph -> ( ( N PrjCrv K ) ` .0. ) = { p e. P | ( ( ( ( 0 ... N ) eval K ) ` .0. ) " p ) = { ( 0g ` K ) } } ) |
26 |
|
eqid |
|- ( Base ` K ) = ( Base ` K ) |
27 |
|
ovexd |
|- ( ( ph /\ p e. P ) -> ( 0 ... N ) e. _V ) |
28 |
16
|
adantr |
|- ( ( ph /\ p e. P ) -> K e. CRing ) |
29 |
7 26 1 8 2 27 28
|
evl0 |
|- ( ( ph /\ p e. P ) -> ( ( ( 0 ... N ) eval K ) ` .0. ) = ( ( ( Base ` K ) ^m ( 0 ... N ) ) X. { ( 0g ` K ) } ) ) |
30 |
29
|
imaeq1d |
|- ( ( ph /\ p e. P ) -> ( ( ( ( 0 ... N ) eval K ) ` .0. ) " p ) = ( ( ( ( Base ` K ) ^m ( 0 ... N ) ) X. { ( 0g ` K ) } ) " p ) ) |
31 |
3
|
eleq2i |
|- ( p e. P <-> p e. ( N PrjSpn K ) ) |
32 |
31
|
biimpi |
|- ( p e. P -> p e. ( N PrjSpn K ) ) |
33 |
32
|
adantl |
|- ( ( ph /\ p e. P ) -> p e. ( N PrjSpn K ) ) |
34 |
4
|
adantr |
|- ( ( ph /\ p e. P ) -> N e. NN0 ) |
35 |
|
isfld |
|- ( K e. Field <-> ( K e. DivRing /\ K e. CRing ) ) |
36 |
35
|
simplbi |
|- ( K e. Field -> K e. DivRing ) |
37 |
5 36
|
syl |
|- ( ph -> K e. DivRing ) |
38 |
37
|
adantr |
|- ( ( ph /\ p e. P ) -> K e. DivRing ) |
39 |
|
prjspnval |
|- ( ( N e. NN0 /\ K e. DivRing ) -> ( N PrjSpn K ) = ( PrjSp ` ( K freeLMod ( 0 ... N ) ) ) ) |
40 |
34 38 39
|
syl2anc |
|- ( ( ph /\ p e. P ) -> ( N PrjSpn K ) = ( PrjSp ` ( K freeLMod ( 0 ... N ) ) ) ) |
41 |
|
eqid |
|- ( K freeLMod ( 0 ... N ) ) = ( K freeLMod ( 0 ... N ) ) |
42 |
41
|
frlmlvec |
|- ( ( K e. DivRing /\ ( 0 ... N ) e. _V ) -> ( K freeLMod ( 0 ... N ) ) e. LVec ) |
43 |
37 12 42
|
syl2anc |
|- ( ph -> ( K freeLMod ( 0 ... N ) ) e. LVec ) |
44 |
43
|
adantr |
|- ( ( ph /\ p e. P ) -> ( K freeLMod ( 0 ... N ) ) e. LVec ) |
45 |
|
eqid |
|- ( 0g ` ( K freeLMod ( 0 ... N ) ) ) = ( 0g ` ( K freeLMod ( 0 ... N ) ) ) |
46 |
|
eqid |
|- ( ( Base ` ( K freeLMod ( 0 ... N ) ) ) \ { ( 0g ` ( K freeLMod ( 0 ... N ) ) ) } ) = ( ( Base ` ( K freeLMod ( 0 ... N ) ) ) \ { ( 0g ` ( K freeLMod ( 0 ... N ) ) ) } ) |
47 |
|
eqid |
|- ( LSpan ` ( K freeLMod ( 0 ... N ) ) ) = ( LSpan ` ( K freeLMod ( 0 ... N ) ) ) |
48 |
45 46 47
|
prjspval2 |
|- ( ( K freeLMod ( 0 ... N ) ) e. LVec -> ( PrjSp ` ( K freeLMod ( 0 ... N ) ) ) = U_ a e. ( ( Base ` ( K freeLMod ( 0 ... N ) ) ) \ { ( 0g ` ( K freeLMod ( 0 ... N ) ) ) } ) { ( ( ( LSpan ` ( K freeLMod ( 0 ... N ) ) ) ` { a } ) \ { ( 0g ` ( K freeLMod ( 0 ... N ) ) ) } ) } ) |
49 |
44 48
|
syl |
|- ( ( ph /\ p e. P ) -> ( PrjSp ` ( K freeLMod ( 0 ... N ) ) ) = U_ a e. ( ( Base ` ( K freeLMod ( 0 ... N ) ) ) \ { ( 0g ` ( K freeLMod ( 0 ... N ) ) ) } ) { ( ( ( LSpan ` ( K freeLMod ( 0 ... N ) ) ) ` { a } ) \ { ( 0g ` ( K freeLMod ( 0 ... N ) ) ) } ) } ) |
50 |
40 49
|
eqtrd |
|- ( ( ph /\ p e. P ) -> ( N PrjSpn K ) = U_ a e. ( ( Base ` ( K freeLMod ( 0 ... N ) ) ) \ { ( 0g ` ( K freeLMod ( 0 ... N ) ) ) } ) { ( ( ( LSpan ` ( K freeLMod ( 0 ... N ) ) ) ` { a } ) \ { ( 0g ` ( K freeLMod ( 0 ... N ) ) ) } ) } ) |
51 |
33 50
|
eleqtrd |
|- ( ( ph /\ p e. P ) -> p e. U_ a e. ( ( Base ` ( K freeLMod ( 0 ... N ) ) ) \ { ( 0g ` ( K freeLMod ( 0 ... N ) ) ) } ) { ( ( ( LSpan ` ( K freeLMod ( 0 ... N ) ) ) ` { a } ) \ { ( 0g ` ( K freeLMod ( 0 ... N ) ) ) } ) } ) |
52 |
|
eliun |
|- ( p e. U_ a e. ( ( Base ` ( K freeLMod ( 0 ... N ) ) ) \ { ( 0g ` ( K freeLMod ( 0 ... N ) ) ) } ) { ( ( ( LSpan ` ( K freeLMod ( 0 ... N ) ) ) ` { a } ) \ { ( 0g ` ( K freeLMod ( 0 ... N ) ) ) } ) } <-> E. a e. ( ( Base ` ( K freeLMod ( 0 ... N ) ) ) \ { ( 0g ` ( K freeLMod ( 0 ... N ) ) ) } ) p e. { ( ( ( LSpan ` ( K freeLMod ( 0 ... N ) ) ) ` { a } ) \ { ( 0g ` ( K freeLMod ( 0 ... N ) ) ) } ) } ) |
53 |
51 52
|
sylib |
|- ( ( ph /\ p e. P ) -> E. a e. ( ( Base ` ( K freeLMod ( 0 ... N ) ) ) \ { ( 0g ` ( K freeLMod ( 0 ... N ) ) ) } ) p e. { ( ( ( LSpan ` ( K freeLMod ( 0 ... N ) ) ) ` { a } ) \ { ( 0g ` ( K freeLMod ( 0 ... N ) ) ) } ) } ) |
54 |
|
eqid |
|- { k e. ( ( Base ` K ) ^m ( 0 ... N ) ) | k finSupp ( 0g ` K ) } = { k e. ( ( Base ` K ) ^m ( 0 ... N ) ) | k finSupp ( 0g ` K ) } |
55 |
41 26 8 54
|
frlmbas |
|- ( ( K e. Field /\ ( 0 ... N ) e. _V ) -> { k e. ( ( Base ` K ) ^m ( 0 ... N ) ) | k finSupp ( 0g ` K ) } = ( Base ` ( K freeLMod ( 0 ... N ) ) ) ) |
56 |
5 12 55
|
syl2anc |
|- ( ph -> { k e. ( ( Base ` K ) ^m ( 0 ... N ) ) | k finSupp ( 0g ` K ) } = ( Base ` ( K freeLMod ( 0 ... N ) ) ) ) |
57 |
|
ssrab2 |
|- { k e. ( ( Base ` K ) ^m ( 0 ... N ) ) | k finSupp ( 0g ` K ) } C_ ( ( Base ` K ) ^m ( 0 ... N ) ) |
58 |
56 57
|
eqsstrrdi |
|- ( ph -> ( Base ` ( K freeLMod ( 0 ... N ) ) ) C_ ( ( Base ` K ) ^m ( 0 ... N ) ) ) |
59 |
58
|
ad2antrr |
|- ( ( ( ph /\ p e. P ) /\ ( a e. ( ( Base ` ( K freeLMod ( 0 ... N ) ) ) \ { ( 0g ` ( K freeLMod ( 0 ... N ) ) ) } ) /\ p e. { ( ( ( LSpan ` ( K freeLMod ( 0 ... N ) ) ) ` { a } ) \ { ( 0g ` ( K freeLMod ( 0 ... N ) ) ) } ) } ) ) -> ( Base ` ( K freeLMod ( 0 ... N ) ) ) C_ ( ( Base ` K ) ^m ( 0 ... N ) ) ) |
60 |
|
eldifi |
|- ( a e. ( ( Base ` ( K freeLMod ( 0 ... N ) ) ) \ { ( 0g ` ( K freeLMod ( 0 ... N ) ) ) } ) -> a e. ( Base ` ( K freeLMod ( 0 ... N ) ) ) ) |
61 |
60
|
adantl |
|- ( ( ( ph /\ p e. P ) /\ a e. ( ( Base ` ( K freeLMod ( 0 ... N ) ) ) \ { ( 0g ` ( K freeLMod ( 0 ... N ) ) ) } ) ) -> a e. ( Base ` ( K freeLMod ( 0 ... N ) ) ) ) |
62 |
61
|
adantrr |
|- ( ( ( ph /\ p e. P ) /\ ( a e. ( ( Base ` ( K freeLMod ( 0 ... N ) ) ) \ { ( 0g ` ( K freeLMod ( 0 ... N ) ) ) } ) /\ p e. { ( ( ( LSpan ` ( K freeLMod ( 0 ... N ) ) ) ` { a } ) \ { ( 0g ` ( K freeLMod ( 0 ... N ) ) ) } ) } ) ) -> a e. ( Base ` ( K freeLMod ( 0 ... N ) ) ) ) |
63 |
59 62
|
sseldd |
|- ( ( ( ph /\ p e. P ) /\ ( a e. ( ( Base ` ( K freeLMod ( 0 ... N ) ) ) \ { ( 0g ` ( K freeLMod ( 0 ... N ) ) ) } ) /\ p e. { ( ( ( LSpan ` ( K freeLMod ( 0 ... N ) ) ) ` { a } ) \ { ( 0g ` ( K freeLMod ( 0 ... N ) ) ) } ) } ) ) -> a e. ( ( Base ` K ) ^m ( 0 ... N ) ) ) |
64 |
|
velsn |
|- ( p e. { ( ( ( LSpan ` ( K freeLMod ( 0 ... N ) ) ) ` { a } ) \ { ( 0g ` ( K freeLMod ( 0 ... N ) ) ) } ) } <-> p = ( ( ( LSpan ` ( K freeLMod ( 0 ... N ) ) ) ` { a } ) \ { ( 0g ` ( K freeLMod ( 0 ... N ) ) ) } ) ) |
65 |
64
|
anbi2i |
|- ( ( a e. ( ( Base ` ( K freeLMod ( 0 ... N ) ) ) \ { ( 0g ` ( K freeLMod ( 0 ... N ) ) ) } ) /\ p e. { ( ( ( LSpan ` ( K freeLMod ( 0 ... N ) ) ) ` { a } ) \ { ( 0g ` ( K freeLMod ( 0 ... N ) ) ) } ) } ) <-> ( a e. ( ( Base ` ( K freeLMod ( 0 ... N ) ) ) \ { ( 0g ` ( K freeLMod ( 0 ... N ) ) ) } ) /\ p = ( ( ( LSpan ` ( K freeLMod ( 0 ... N ) ) ) ` { a } ) \ { ( 0g ` ( K freeLMod ( 0 ... N ) ) ) } ) ) ) |
66 |
43
|
lveclmodd |
|- ( ph -> ( K freeLMod ( 0 ... N ) ) e. LMod ) |
67 |
66
|
ad2antrr |
|- ( ( ( ph /\ p e. P ) /\ a e. ( ( Base ` ( K freeLMod ( 0 ... N ) ) ) \ { ( 0g ` ( K freeLMod ( 0 ... N ) ) ) } ) ) -> ( K freeLMod ( 0 ... N ) ) e. LMod ) |
68 |
|
eqid |
|- ( Base ` ( K freeLMod ( 0 ... N ) ) ) = ( Base ` ( K freeLMod ( 0 ... N ) ) ) |
69 |
68 47
|
lspsnid |
|- ( ( ( K freeLMod ( 0 ... N ) ) e. LMod /\ a e. ( Base ` ( K freeLMod ( 0 ... N ) ) ) ) -> a e. ( ( LSpan ` ( K freeLMod ( 0 ... N ) ) ) ` { a } ) ) |
70 |
67 61 69
|
syl2anc |
|- ( ( ( ph /\ p e. P ) /\ a e. ( ( Base ` ( K freeLMod ( 0 ... N ) ) ) \ { ( 0g ` ( K freeLMod ( 0 ... N ) ) ) } ) ) -> a e. ( ( LSpan ` ( K freeLMod ( 0 ... N ) ) ) ` { a } ) ) |
71 |
|
eldifn |
|- ( a e. ( ( Base ` ( K freeLMod ( 0 ... N ) ) ) \ { ( 0g ` ( K freeLMod ( 0 ... N ) ) ) } ) -> -. a e. { ( 0g ` ( K freeLMod ( 0 ... N ) ) ) } ) |
72 |
71
|
adantl |
|- ( ( ( ph /\ p e. P ) /\ a e. ( ( Base ` ( K freeLMod ( 0 ... N ) ) ) \ { ( 0g ` ( K freeLMod ( 0 ... N ) ) ) } ) ) -> -. a e. { ( 0g ` ( K freeLMod ( 0 ... N ) ) ) } ) |
73 |
70 72
|
eldifd |
|- ( ( ( ph /\ p e. P ) /\ a e. ( ( Base ` ( K freeLMod ( 0 ... N ) ) ) \ { ( 0g ` ( K freeLMod ( 0 ... N ) ) ) } ) ) -> a e. ( ( ( LSpan ` ( K freeLMod ( 0 ... N ) ) ) ` { a } ) \ { ( 0g ` ( K freeLMod ( 0 ... N ) ) ) } ) ) |
74 |
|
eleq2 |
|- ( p = ( ( ( LSpan ` ( K freeLMod ( 0 ... N ) ) ) ` { a } ) \ { ( 0g ` ( K freeLMod ( 0 ... N ) ) ) } ) -> ( a e. p <-> a e. ( ( ( LSpan ` ( K freeLMod ( 0 ... N ) ) ) ` { a } ) \ { ( 0g ` ( K freeLMod ( 0 ... N ) ) ) } ) ) ) |
75 |
73 74
|
syl5ibrcom |
|- ( ( ( ph /\ p e. P ) /\ a e. ( ( Base ` ( K freeLMod ( 0 ... N ) ) ) \ { ( 0g ` ( K freeLMod ( 0 ... N ) ) ) } ) ) -> ( p = ( ( ( LSpan ` ( K freeLMod ( 0 ... N ) ) ) ` { a } ) \ { ( 0g ` ( K freeLMod ( 0 ... N ) ) ) } ) -> a e. p ) ) |
76 |
75
|
impr |
|- ( ( ( ph /\ p e. P ) /\ ( a e. ( ( Base ` ( K freeLMod ( 0 ... N ) ) ) \ { ( 0g ` ( K freeLMod ( 0 ... N ) ) ) } ) /\ p = ( ( ( LSpan ` ( K freeLMod ( 0 ... N ) ) ) ` { a } ) \ { ( 0g ` ( K freeLMod ( 0 ... N ) ) ) } ) ) ) -> a e. p ) |
77 |
65 76
|
sylan2b |
|- ( ( ( ph /\ p e. P ) /\ ( a e. ( ( Base ` ( K freeLMod ( 0 ... N ) ) ) \ { ( 0g ` ( K freeLMod ( 0 ... N ) ) ) } ) /\ p e. { ( ( ( LSpan ` ( K freeLMod ( 0 ... N ) ) ) ` { a } ) \ { ( 0g ` ( K freeLMod ( 0 ... N ) ) ) } ) } ) ) -> a e. p ) |
78 |
63 77
|
elind |
|- ( ( ( ph /\ p e. P ) /\ ( a e. ( ( Base ` ( K freeLMod ( 0 ... N ) ) ) \ { ( 0g ` ( K freeLMod ( 0 ... N ) ) ) } ) /\ p e. { ( ( ( LSpan ` ( K freeLMod ( 0 ... N ) ) ) ` { a } ) \ { ( 0g ` ( K freeLMod ( 0 ... N ) ) ) } ) } ) ) -> a e. ( ( ( Base ` K ) ^m ( 0 ... N ) ) i^i p ) ) |
79 |
78
|
ne0d |
|- ( ( ( ph /\ p e. P ) /\ ( a e. ( ( Base ` ( K freeLMod ( 0 ... N ) ) ) \ { ( 0g ` ( K freeLMod ( 0 ... N ) ) ) } ) /\ p e. { ( ( ( LSpan ` ( K freeLMod ( 0 ... N ) ) ) ` { a } ) \ { ( 0g ` ( K freeLMod ( 0 ... N ) ) ) } ) } ) ) -> ( ( ( Base ` K ) ^m ( 0 ... N ) ) i^i p ) =/= (/) ) |
80 |
53 79
|
rexlimddv |
|- ( ( ph /\ p e. P ) -> ( ( ( Base ` K ) ^m ( 0 ... N ) ) i^i p ) =/= (/) ) |
81 |
|
xpima2 |
|- ( ( ( ( Base ` K ) ^m ( 0 ... N ) ) i^i p ) =/= (/) -> ( ( ( ( Base ` K ) ^m ( 0 ... N ) ) X. { ( 0g ` K ) } ) " p ) = { ( 0g ` K ) } ) |
82 |
80 81
|
syl |
|- ( ( ph /\ p e. P ) -> ( ( ( ( Base ` K ) ^m ( 0 ... N ) ) X. { ( 0g ` K ) } ) " p ) = { ( 0g ` K ) } ) |
83 |
30 82
|
eqtrd |
|- ( ( ph /\ p e. P ) -> ( ( ( ( 0 ... N ) eval K ) ` .0. ) " p ) = { ( 0g ` K ) } ) |
84 |
83
|
rabeqcda |
|- ( ph -> { p e. P | ( ( ( ( 0 ... N ) eval K ) ` .0. ) " p ) = { ( 0g ` K ) } } = P ) |
85 |
25 84
|
eqtrd |
|- ( ph -> ( ( N PrjCrv K ) ` .0. ) = P ) |