Step |
Hyp |
Ref |
Expression |
1 |
|
monmat2matmon.p |
|- P = ( Poly1 ` R ) |
2 |
|
monmat2matmon.c |
|- C = ( N Mat P ) |
3 |
|
monmat2matmon.b |
|- B = ( Base ` C ) |
4 |
|
monmat2matmon.m1 |
|- .* = ( .s ` Q ) |
5 |
|
monmat2matmon.e1 |
|- .^ = ( .g ` ( mulGrp ` Q ) ) |
6 |
|
monmat2matmon.x |
|- X = ( var1 ` A ) |
7 |
|
monmat2matmon.a |
|- A = ( N Mat R ) |
8 |
|
monmat2matmon.k |
|- K = ( Base ` A ) |
9 |
|
monmat2matmon.q |
|- Q = ( Poly1 ` A ) |
10 |
|
monmat2matmon.i |
|- I = ( N pMatToMatPoly R ) |
11 |
|
monmat2matmon.e2 |
|- E = ( .g ` ( mulGrp ` P ) ) |
12 |
|
monmat2matmon.y |
|- Y = ( var1 ` R ) |
13 |
|
monmat2matmon.m2 |
|- .x. = ( .s ` C ) |
14 |
|
monmat2matmon.t |
|- T = ( N matToPolyMat R ) |
15 |
|
crngring |
|- ( R e. CRing -> R e. Ring ) |
16 |
|
simpll |
|- ( ( ( N e. Fin /\ R e. Ring ) /\ ( M e. K /\ L e. NN0 ) ) -> N e. Fin ) |
17 |
|
simplr |
|- ( ( ( N e. Fin /\ R e. Ring ) /\ ( M e. K /\ L e. NN0 ) ) -> R e. Ring ) |
18 |
7 8 14 1 2 3 13 11 12
|
mat2pmatscmxcl |
|- ( ( ( N e. Fin /\ R e. Ring ) /\ ( M e. K /\ L e. NN0 ) ) -> ( ( L E Y ) .x. ( T ` M ) ) e. B ) |
19 |
1 2 3 4 5 6 7 9 10
|
pm2mpfval |
|- ( ( N e. Fin /\ R e. Ring /\ ( ( L E Y ) .x. ( T ` M ) ) e. B ) -> ( I ` ( ( L E Y ) .x. ( T ` M ) ) ) = ( Q gsum ( k e. NN0 |-> ( ( ( ( L E Y ) .x. ( T ` M ) ) decompPMat k ) .* ( k .^ X ) ) ) ) ) |
20 |
16 17 18 19
|
syl3anc |
|- ( ( ( N e. Fin /\ R e. Ring ) /\ ( M e. K /\ L e. NN0 ) ) -> ( I ` ( ( L E Y ) .x. ( T ` M ) ) ) = ( Q gsum ( k e. NN0 |-> ( ( ( ( L E Y ) .x. ( T ` M ) ) decompPMat k ) .* ( k .^ X ) ) ) ) ) |
21 |
15 20
|
sylanl2 |
|- ( ( ( N e. Fin /\ R e. CRing ) /\ ( M e. K /\ L e. NN0 ) ) -> ( I ` ( ( L E Y ) .x. ( T ` M ) ) ) = ( Q gsum ( k e. NN0 |-> ( ( ( ( L E Y ) .x. ( T ` M ) ) decompPMat k ) .* ( k .^ X ) ) ) ) ) |
22 |
|
simpll |
|- ( ( ( ( N e. Fin /\ R e. CRing ) /\ ( M e. K /\ L e. NN0 ) ) /\ k e. NN0 ) -> ( N e. Fin /\ R e. CRing ) ) |
23 |
|
simpr |
|- ( ( ( N e. Fin /\ R e. CRing ) /\ ( M e. K /\ L e. NN0 ) ) -> ( M e. K /\ L e. NN0 ) ) |
24 |
23
|
anim1i |
|- ( ( ( ( N e. Fin /\ R e. CRing ) /\ ( M e. K /\ L e. NN0 ) ) /\ k e. NN0 ) -> ( ( M e. K /\ L e. NN0 ) /\ k e. NN0 ) ) |
25 |
|
df-3an |
|- ( ( M e. K /\ L e. NN0 /\ k e. NN0 ) <-> ( ( M e. K /\ L e. NN0 ) /\ k e. NN0 ) ) |
26 |
24 25
|
sylibr |
|- ( ( ( ( N e. Fin /\ R e. CRing ) /\ ( M e. K /\ L e. NN0 ) ) /\ k e. NN0 ) -> ( M e. K /\ L e. NN0 /\ k e. NN0 ) ) |
27 |
|
eqid |
|- ( 0g ` A ) = ( 0g ` A ) |
28 |
1 2 7 8 27 11 12 13 14
|
monmatcollpw |
|- ( ( ( N e. Fin /\ R e. CRing ) /\ ( M e. K /\ L e. NN0 /\ k e. NN0 ) ) -> ( ( ( L E Y ) .x. ( T ` M ) ) decompPMat k ) = if ( k = L , M , ( 0g ` A ) ) ) |
29 |
22 26 28
|
syl2anc |
|- ( ( ( ( N e. Fin /\ R e. CRing ) /\ ( M e. K /\ L e. NN0 ) ) /\ k e. NN0 ) -> ( ( ( L E Y ) .x. ( T ` M ) ) decompPMat k ) = if ( k = L , M , ( 0g ` A ) ) ) |
30 |
29
|
oveq1d |
|- ( ( ( ( N e. Fin /\ R e. CRing ) /\ ( M e. K /\ L e. NN0 ) ) /\ k e. NN0 ) -> ( ( ( ( L E Y ) .x. ( T ` M ) ) decompPMat k ) .* ( k .^ X ) ) = ( if ( k = L , M , ( 0g ` A ) ) .* ( k .^ X ) ) ) |
31 |
15
|
a1i |
|- ( k e. NN0 -> ( R e. CRing -> R e. Ring ) ) |
32 |
31
|
anim2d |
|- ( k e. NN0 -> ( ( N e. Fin /\ R e. CRing ) -> ( N e. Fin /\ R e. Ring ) ) ) |
33 |
32
|
anim1d |
|- ( k e. NN0 -> ( ( ( N e. Fin /\ R e. CRing ) /\ ( M e. K /\ L e. NN0 ) ) -> ( ( N e. Fin /\ R e. Ring ) /\ ( M e. K /\ L e. NN0 ) ) ) ) |
34 |
33
|
imdistanri |
|- ( ( ( ( N e. Fin /\ R e. CRing ) /\ ( M e. K /\ L e. NN0 ) ) /\ k e. NN0 ) -> ( ( ( N e. Fin /\ R e. Ring ) /\ ( M e. K /\ L e. NN0 ) ) /\ k e. NN0 ) ) |
35 |
|
ovif |
|- ( if ( k = L , M , ( 0g ` A ) ) .* ( k .^ X ) ) = if ( k = L , ( M .* ( k .^ X ) ) , ( ( 0g ` A ) .* ( k .^ X ) ) ) |
36 |
7
|
matring |
|- ( ( N e. Fin /\ R e. Ring ) -> A e. Ring ) |
37 |
9
|
ply1sca |
|- ( A e. Ring -> A = ( Scalar ` Q ) ) |
38 |
36 37
|
syl |
|- ( ( N e. Fin /\ R e. Ring ) -> A = ( Scalar ` Q ) ) |
39 |
38
|
ad2antrr |
|- ( ( ( ( N e. Fin /\ R e. Ring ) /\ ( M e. K /\ L e. NN0 ) ) /\ k e. NN0 ) -> A = ( Scalar ` Q ) ) |
40 |
39
|
fveq2d |
|- ( ( ( ( N e. Fin /\ R e. Ring ) /\ ( M e. K /\ L e. NN0 ) ) /\ k e. NN0 ) -> ( 0g ` A ) = ( 0g ` ( Scalar ` Q ) ) ) |
41 |
40
|
oveq1d |
|- ( ( ( ( N e. Fin /\ R e. Ring ) /\ ( M e. K /\ L e. NN0 ) ) /\ k e. NN0 ) -> ( ( 0g ` A ) .* ( k .^ X ) ) = ( ( 0g ` ( Scalar ` Q ) ) .* ( k .^ X ) ) ) |
42 |
9
|
ply1lmod |
|- ( A e. Ring -> Q e. LMod ) |
43 |
36 42
|
syl |
|- ( ( N e. Fin /\ R e. Ring ) -> Q e. LMod ) |
44 |
43
|
ad2antrr |
|- ( ( ( ( N e. Fin /\ R e. Ring ) /\ ( M e. K /\ L e. NN0 ) ) /\ k e. NN0 ) -> Q e. LMod ) |
45 |
9
|
ply1ring |
|- ( A e. Ring -> Q e. Ring ) |
46 |
36 45
|
syl |
|- ( ( N e. Fin /\ R e. Ring ) -> Q e. Ring ) |
47 |
|
eqid |
|- ( mulGrp ` Q ) = ( mulGrp ` Q ) |
48 |
47
|
ringmgp |
|- ( Q e. Ring -> ( mulGrp ` Q ) e. Mnd ) |
49 |
46 48
|
syl |
|- ( ( N e. Fin /\ R e. Ring ) -> ( mulGrp ` Q ) e. Mnd ) |
50 |
49
|
ad2antrr |
|- ( ( ( ( N e. Fin /\ R e. Ring ) /\ ( M e. K /\ L e. NN0 ) ) /\ k e. NN0 ) -> ( mulGrp ` Q ) e. Mnd ) |
51 |
|
simpr |
|- ( ( ( ( N e. Fin /\ R e. Ring ) /\ ( M e. K /\ L e. NN0 ) ) /\ k e. NN0 ) -> k e. NN0 ) |
52 |
|
eqid |
|- ( Base ` Q ) = ( Base ` Q ) |
53 |
6 9 52
|
vr1cl |
|- ( A e. Ring -> X e. ( Base ` Q ) ) |
54 |
36 53
|
syl |
|- ( ( N e. Fin /\ R e. Ring ) -> X e. ( Base ` Q ) ) |
55 |
54
|
ad2antrr |
|- ( ( ( ( N e. Fin /\ R e. Ring ) /\ ( M e. K /\ L e. NN0 ) ) /\ k e. NN0 ) -> X e. ( Base ` Q ) ) |
56 |
47 52
|
mgpbas |
|- ( Base ` Q ) = ( Base ` ( mulGrp ` Q ) ) |
57 |
56 5
|
mulgnn0cl |
|- ( ( ( mulGrp ` Q ) e. Mnd /\ k e. NN0 /\ X e. ( Base ` Q ) ) -> ( k .^ X ) e. ( Base ` Q ) ) |
58 |
50 51 55 57
|
syl3anc |
|- ( ( ( ( N e. Fin /\ R e. Ring ) /\ ( M e. K /\ L e. NN0 ) ) /\ k e. NN0 ) -> ( k .^ X ) e. ( Base ` Q ) ) |
59 |
|
eqid |
|- ( Scalar ` Q ) = ( Scalar ` Q ) |
60 |
|
eqid |
|- ( 0g ` ( Scalar ` Q ) ) = ( 0g ` ( Scalar ` Q ) ) |
61 |
|
eqid |
|- ( 0g ` Q ) = ( 0g ` Q ) |
62 |
52 59 4 60 61
|
lmod0vs |
|- ( ( Q e. LMod /\ ( k .^ X ) e. ( Base ` Q ) ) -> ( ( 0g ` ( Scalar ` Q ) ) .* ( k .^ X ) ) = ( 0g ` Q ) ) |
63 |
44 58 62
|
syl2anc |
|- ( ( ( ( N e. Fin /\ R e. Ring ) /\ ( M e. K /\ L e. NN0 ) ) /\ k e. NN0 ) -> ( ( 0g ` ( Scalar ` Q ) ) .* ( k .^ X ) ) = ( 0g ` Q ) ) |
64 |
41 63
|
eqtrd |
|- ( ( ( ( N e. Fin /\ R e. Ring ) /\ ( M e. K /\ L e. NN0 ) ) /\ k e. NN0 ) -> ( ( 0g ` A ) .* ( k .^ X ) ) = ( 0g ` Q ) ) |
65 |
64
|
ifeq2d |
|- ( ( ( ( N e. Fin /\ R e. Ring ) /\ ( M e. K /\ L e. NN0 ) ) /\ k e. NN0 ) -> if ( k = L , ( M .* ( k .^ X ) ) , ( ( 0g ` A ) .* ( k .^ X ) ) ) = if ( k = L , ( M .* ( k .^ X ) ) , ( 0g ` Q ) ) ) |
66 |
35 65
|
syl5eq |
|- ( ( ( ( N e. Fin /\ R e. Ring ) /\ ( M e. K /\ L e. NN0 ) ) /\ k e. NN0 ) -> ( if ( k = L , M , ( 0g ` A ) ) .* ( k .^ X ) ) = if ( k = L , ( M .* ( k .^ X ) ) , ( 0g ` Q ) ) ) |
67 |
34 66
|
syl |
|- ( ( ( ( N e. Fin /\ R e. CRing ) /\ ( M e. K /\ L e. NN0 ) ) /\ k e. NN0 ) -> ( if ( k = L , M , ( 0g ` A ) ) .* ( k .^ X ) ) = if ( k = L , ( M .* ( k .^ X ) ) , ( 0g ` Q ) ) ) |
68 |
30 67
|
eqtrd |
|- ( ( ( ( N e. Fin /\ R e. CRing ) /\ ( M e. K /\ L e. NN0 ) ) /\ k e. NN0 ) -> ( ( ( ( L E Y ) .x. ( T ` M ) ) decompPMat k ) .* ( k .^ X ) ) = if ( k = L , ( M .* ( k .^ X ) ) , ( 0g ` Q ) ) ) |
69 |
68
|
mpteq2dva |
|- ( ( ( N e. Fin /\ R e. CRing ) /\ ( M e. K /\ L e. NN0 ) ) -> ( k e. NN0 |-> ( ( ( ( L E Y ) .x. ( T ` M ) ) decompPMat k ) .* ( k .^ X ) ) ) = ( k e. NN0 |-> if ( k = L , ( M .* ( k .^ X ) ) , ( 0g ` Q ) ) ) ) |
70 |
69
|
oveq2d |
|- ( ( ( N e. Fin /\ R e. CRing ) /\ ( M e. K /\ L e. NN0 ) ) -> ( Q gsum ( k e. NN0 |-> ( ( ( ( L E Y ) .x. ( T ` M ) ) decompPMat k ) .* ( k .^ X ) ) ) ) = ( Q gsum ( k e. NN0 |-> if ( k = L , ( M .* ( k .^ X ) ) , ( 0g ` Q ) ) ) ) ) |
71 |
|
ringmnd |
|- ( Q e. Ring -> Q e. Mnd ) |
72 |
46 71
|
syl |
|- ( ( N e. Fin /\ R e. Ring ) -> Q e. Mnd ) |
73 |
72
|
adantr |
|- ( ( ( N e. Fin /\ R e. Ring ) /\ ( M e. K /\ L e. NN0 ) ) -> Q e. Mnd ) |
74 |
|
nn0ex |
|- NN0 e. _V |
75 |
74
|
a1i |
|- ( ( ( N e. Fin /\ R e. Ring ) /\ ( M e. K /\ L e. NN0 ) ) -> NN0 e. _V ) |
76 |
|
simprr |
|- ( ( ( N e. Fin /\ R e. Ring ) /\ ( M e. K /\ L e. NN0 ) ) -> L e. NN0 ) |
77 |
|
eqid |
|- ( k e. NN0 |-> if ( k = L , ( M .* ( k .^ X ) ) , ( 0g ` Q ) ) ) = ( k e. NN0 |-> if ( k = L , ( M .* ( k .^ X ) ) , ( 0g ` Q ) ) ) |
78 |
38
|
fveq2d |
|- ( ( N e. Fin /\ R e. Ring ) -> ( Base ` A ) = ( Base ` ( Scalar ` Q ) ) ) |
79 |
8 78
|
syl5eq |
|- ( ( N e. Fin /\ R e. Ring ) -> K = ( Base ` ( Scalar ` Q ) ) ) |
80 |
79
|
eleq2d |
|- ( ( N e. Fin /\ R e. Ring ) -> ( M e. K <-> M e. ( Base ` ( Scalar ` Q ) ) ) ) |
81 |
80
|
biimpcd |
|- ( M e. K -> ( ( N e. Fin /\ R e. Ring ) -> M e. ( Base ` ( Scalar ` Q ) ) ) ) |
82 |
81
|
adantr |
|- ( ( M e. K /\ L e. NN0 ) -> ( ( N e. Fin /\ R e. Ring ) -> M e. ( Base ` ( Scalar ` Q ) ) ) ) |
83 |
82
|
impcom |
|- ( ( ( N e. Fin /\ R e. Ring ) /\ ( M e. K /\ L e. NN0 ) ) -> M e. ( Base ` ( Scalar ` Q ) ) ) |
84 |
83
|
adantr |
|- ( ( ( ( N e. Fin /\ R e. Ring ) /\ ( M e. K /\ L e. NN0 ) ) /\ k e. NN0 ) -> M e. ( Base ` ( Scalar ` Q ) ) ) |
85 |
|
eqid |
|- ( Base ` ( Scalar ` Q ) ) = ( Base ` ( Scalar ` Q ) ) |
86 |
52 59 4 85
|
lmodvscl |
|- ( ( Q e. LMod /\ M e. ( Base ` ( Scalar ` Q ) ) /\ ( k .^ X ) e. ( Base ` Q ) ) -> ( M .* ( k .^ X ) ) e. ( Base ` Q ) ) |
87 |
44 84 58 86
|
syl3anc |
|- ( ( ( ( N e. Fin /\ R e. Ring ) /\ ( M e. K /\ L e. NN0 ) ) /\ k e. NN0 ) -> ( M .* ( k .^ X ) ) e. ( Base ` Q ) ) |
88 |
87
|
ralrimiva |
|- ( ( ( N e. Fin /\ R e. Ring ) /\ ( M e. K /\ L e. NN0 ) ) -> A. k e. NN0 ( M .* ( k .^ X ) ) e. ( Base ` Q ) ) |
89 |
61 73 75 76 77 88
|
gsummpt1n0 |
|- ( ( ( N e. Fin /\ R e. Ring ) /\ ( M e. K /\ L e. NN0 ) ) -> ( Q gsum ( k e. NN0 |-> if ( k = L , ( M .* ( k .^ X ) ) , ( 0g ` Q ) ) ) ) = [_ L / k ]_ ( M .* ( k .^ X ) ) ) |
90 |
15 89
|
sylanl2 |
|- ( ( ( N e. Fin /\ R e. CRing ) /\ ( M e. K /\ L e. NN0 ) ) -> ( Q gsum ( k e. NN0 |-> if ( k = L , ( M .* ( k .^ X ) ) , ( 0g ` Q ) ) ) ) = [_ L / k ]_ ( M .* ( k .^ X ) ) ) |
91 |
70 90
|
eqtrd |
|- ( ( ( N e. Fin /\ R e. CRing ) /\ ( M e. K /\ L e. NN0 ) ) -> ( Q gsum ( k e. NN0 |-> ( ( ( ( L E Y ) .x. ( T ` M ) ) decompPMat k ) .* ( k .^ X ) ) ) ) = [_ L / k ]_ ( M .* ( k .^ X ) ) ) |
92 |
|
csbov2g |
|- ( L e. NN0 -> [_ L / k ]_ ( M .* ( k .^ X ) ) = ( M .* [_ L / k ]_ ( k .^ X ) ) ) |
93 |
|
csbov1g |
|- ( L e. NN0 -> [_ L / k ]_ ( k .^ X ) = ( [_ L / k ]_ k .^ X ) ) |
94 |
|
csbvarg |
|- ( L e. NN0 -> [_ L / k ]_ k = L ) |
95 |
94
|
oveq1d |
|- ( L e. NN0 -> ( [_ L / k ]_ k .^ X ) = ( L .^ X ) ) |
96 |
93 95
|
eqtrd |
|- ( L e. NN0 -> [_ L / k ]_ ( k .^ X ) = ( L .^ X ) ) |
97 |
96
|
oveq2d |
|- ( L e. NN0 -> ( M .* [_ L / k ]_ ( k .^ X ) ) = ( M .* ( L .^ X ) ) ) |
98 |
92 97
|
eqtrd |
|- ( L e. NN0 -> [_ L / k ]_ ( M .* ( k .^ X ) ) = ( M .* ( L .^ X ) ) ) |
99 |
98
|
ad2antll |
|- ( ( ( N e. Fin /\ R e. CRing ) /\ ( M e. K /\ L e. NN0 ) ) -> [_ L / k ]_ ( M .* ( k .^ X ) ) = ( M .* ( L .^ X ) ) ) |
100 |
21 91 99
|
3eqtrd |
|- ( ( ( N e. Fin /\ R e. CRing ) /\ ( M e. K /\ L e. NN0 ) ) -> ( I ` ( ( L E Y ) .x. ( T ` M ) ) ) = ( M .* ( L .^ X ) ) ) |