Step |
Hyp |
Ref |
Expression |
1 |
|
pm2mpval.p |
|- P = ( Poly1 ` R ) |
2 |
|
pm2mpval.c |
|- C = ( N Mat P ) |
3 |
|
pm2mpval.b |
|- B = ( Base ` C ) |
4 |
|
pm2mpval.m |
|- .* = ( .s ` Q ) |
5 |
|
pm2mpval.e |
|- .^ = ( .g ` ( mulGrp ` Q ) ) |
6 |
|
pm2mpval.x |
|- X = ( var1 ` A ) |
7 |
|
pm2mpval.a |
|- A = ( N Mat R ) |
8 |
|
pm2mpval.q |
|- Q = ( Poly1 ` A ) |
9 |
|
pm2mpval.t |
|- T = ( N pMatToMatPoly R ) |
10 |
|
df-pm2mp |
|- pMatToMatPoly = ( n e. Fin , r e. _V |-> ( m e. ( Base ` ( n Mat ( Poly1 ` r ) ) ) |-> [_ ( n Mat r ) / a ]_ [_ ( Poly1 ` a ) / q ]_ ( q gsum ( k e. NN0 |-> ( ( m decompPMat k ) ( .s ` q ) ( k ( .g ` ( mulGrp ` q ) ) ( var1 ` a ) ) ) ) ) ) ) |
11 |
10
|
a1i |
|- ( ( N e. Fin /\ R e. V ) -> pMatToMatPoly = ( n e. Fin , r e. _V |-> ( m e. ( Base ` ( n Mat ( Poly1 ` r ) ) ) |-> [_ ( n Mat r ) / a ]_ [_ ( Poly1 ` a ) / q ]_ ( q gsum ( k e. NN0 |-> ( ( m decompPMat k ) ( .s ` q ) ( k ( .g ` ( mulGrp ` q ) ) ( var1 ` a ) ) ) ) ) ) ) ) |
12 |
|
simpl |
|- ( ( n = N /\ r = R ) -> n = N ) |
13 |
|
fveq2 |
|- ( r = R -> ( Poly1 ` r ) = ( Poly1 ` R ) ) |
14 |
13
|
adantl |
|- ( ( n = N /\ r = R ) -> ( Poly1 ` r ) = ( Poly1 ` R ) ) |
15 |
12 14
|
oveq12d |
|- ( ( n = N /\ r = R ) -> ( n Mat ( Poly1 ` r ) ) = ( N Mat ( Poly1 ` R ) ) ) |
16 |
15
|
fveq2d |
|- ( ( n = N /\ r = R ) -> ( Base ` ( n Mat ( Poly1 ` r ) ) ) = ( Base ` ( N Mat ( Poly1 ` R ) ) ) ) |
17 |
1
|
oveq2i |
|- ( N Mat P ) = ( N Mat ( Poly1 ` R ) ) |
18 |
2 17
|
eqtri |
|- C = ( N Mat ( Poly1 ` R ) ) |
19 |
18
|
fveq2i |
|- ( Base ` C ) = ( Base ` ( N Mat ( Poly1 ` R ) ) ) |
20 |
3 19
|
eqtri |
|- B = ( Base ` ( N Mat ( Poly1 ` R ) ) ) |
21 |
16 20
|
eqtr4di |
|- ( ( n = N /\ r = R ) -> ( Base ` ( n Mat ( Poly1 ` r ) ) ) = B ) |
22 |
21
|
adantl |
|- ( ( ( N e. Fin /\ R e. V ) /\ ( n = N /\ r = R ) ) -> ( Base ` ( n Mat ( Poly1 ` r ) ) ) = B ) |
23 |
|
ovex |
|- ( n Mat r ) e. _V |
24 |
|
fvexd |
|- ( a = ( n Mat r ) -> ( Poly1 ` a ) e. _V ) |
25 |
|
simpr |
|- ( ( a = ( n Mat r ) /\ q = ( Poly1 ` a ) ) -> q = ( Poly1 ` a ) ) |
26 |
|
fveq2 |
|- ( a = ( n Mat r ) -> ( Poly1 ` a ) = ( Poly1 ` ( n Mat r ) ) ) |
27 |
26
|
adantr |
|- ( ( a = ( n Mat r ) /\ q = ( Poly1 ` a ) ) -> ( Poly1 ` a ) = ( Poly1 ` ( n Mat r ) ) ) |
28 |
25 27
|
eqtrd |
|- ( ( a = ( n Mat r ) /\ q = ( Poly1 ` a ) ) -> q = ( Poly1 ` ( n Mat r ) ) ) |
29 |
28
|
fveq2d |
|- ( ( a = ( n Mat r ) /\ q = ( Poly1 ` a ) ) -> ( .s ` q ) = ( .s ` ( Poly1 ` ( n Mat r ) ) ) ) |
30 |
|
eqidd |
|- ( ( a = ( n Mat r ) /\ q = ( Poly1 ` a ) ) -> ( m decompPMat k ) = ( m decompPMat k ) ) |
31 |
28
|
fveq2d |
|- ( ( a = ( n Mat r ) /\ q = ( Poly1 ` a ) ) -> ( mulGrp ` q ) = ( mulGrp ` ( Poly1 ` ( n Mat r ) ) ) ) |
32 |
31
|
fveq2d |
|- ( ( a = ( n Mat r ) /\ q = ( Poly1 ` a ) ) -> ( .g ` ( mulGrp ` q ) ) = ( .g ` ( mulGrp ` ( Poly1 ` ( n Mat r ) ) ) ) ) |
33 |
|
eqidd |
|- ( ( a = ( n Mat r ) /\ q = ( Poly1 ` a ) ) -> k = k ) |
34 |
|
fveq2 |
|- ( a = ( n Mat r ) -> ( var1 ` a ) = ( var1 ` ( n Mat r ) ) ) |
35 |
34
|
adantr |
|- ( ( a = ( n Mat r ) /\ q = ( Poly1 ` a ) ) -> ( var1 ` a ) = ( var1 ` ( n Mat r ) ) ) |
36 |
32 33 35
|
oveq123d |
|- ( ( a = ( n Mat r ) /\ q = ( Poly1 ` a ) ) -> ( k ( .g ` ( mulGrp ` q ) ) ( var1 ` a ) ) = ( k ( .g ` ( mulGrp ` ( Poly1 ` ( n Mat r ) ) ) ) ( var1 ` ( n Mat r ) ) ) ) |
37 |
29 30 36
|
oveq123d |
|- ( ( a = ( n Mat r ) /\ q = ( Poly1 ` a ) ) -> ( ( m decompPMat k ) ( .s ` q ) ( k ( .g ` ( mulGrp ` q ) ) ( var1 ` a ) ) ) = ( ( m decompPMat k ) ( .s ` ( Poly1 ` ( n Mat r ) ) ) ( k ( .g ` ( mulGrp ` ( Poly1 ` ( n Mat r ) ) ) ) ( var1 ` ( n Mat r ) ) ) ) ) |
38 |
37
|
mpteq2dv |
|- ( ( a = ( n Mat r ) /\ q = ( Poly1 ` a ) ) -> ( k e. NN0 |-> ( ( m decompPMat k ) ( .s ` q ) ( k ( .g ` ( mulGrp ` q ) ) ( var1 ` a ) ) ) ) = ( k e. NN0 |-> ( ( m decompPMat k ) ( .s ` ( Poly1 ` ( n Mat r ) ) ) ( k ( .g ` ( mulGrp ` ( Poly1 ` ( n Mat r ) ) ) ) ( var1 ` ( n Mat r ) ) ) ) ) ) |
39 |
28 38
|
oveq12d |
|- ( ( a = ( n Mat r ) /\ q = ( Poly1 ` a ) ) -> ( q gsum ( k e. NN0 |-> ( ( m decompPMat k ) ( .s ` q ) ( k ( .g ` ( mulGrp ` q ) ) ( var1 ` a ) ) ) ) ) = ( ( Poly1 ` ( n Mat r ) ) gsum ( k e. NN0 |-> ( ( m decompPMat k ) ( .s ` ( Poly1 ` ( n Mat r ) ) ) ( k ( .g ` ( mulGrp ` ( Poly1 ` ( n Mat r ) ) ) ) ( var1 ` ( n Mat r ) ) ) ) ) ) ) |
40 |
24 39
|
csbied |
|- ( a = ( n Mat r ) -> [_ ( Poly1 ` a ) / q ]_ ( q gsum ( k e. NN0 |-> ( ( m decompPMat k ) ( .s ` q ) ( k ( .g ` ( mulGrp ` q ) ) ( var1 ` a ) ) ) ) ) = ( ( Poly1 ` ( n Mat r ) ) gsum ( k e. NN0 |-> ( ( m decompPMat k ) ( .s ` ( Poly1 ` ( n Mat r ) ) ) ( k ( .g ` ( mulGrp ` ( Poly1 ` ( n Mat r ) ) ) ) ( var1 ` ( n Mat r ) ) ) ) ) ) ) |
41 |
23 40
|
csbie |
|- [_ ( n Mat r ) / a ]_ [_ ( Poly1 ` a ) / q ]_ ( q gsum ( k e. NN0 |-> ( ( m decompPMat k ) ( .s ` q ) ( k ( .g ` ( mulGrp ` q ) ) ( var1 ` a ) ) ) ) ) = ( ( Poly1 ` ( n Mat r ) ) gsum ( k e. NN0 |-> ( ( m decompPMat k ) ( .s ` ( Poly1 ` ( n Mat r ) ) ) ( k ( .g ` ( mulGrp ` ( Poly1 ` ( n Mat r ) ) ) ) ( var1 ` ( n Mat r ) ) ) ) ) ) |
42 |
|
oveq12 |
|- ( ( n = N /\ r = R ) -> ( n Mat r ) = ( N Mat R ) ) |
43 |
42
|
fveq2d |
|- ( ( n = N /\ r = R ) -> ( Poly1 ` ( n Mat r ) ) = ( Poly1 ` ( N Mat R ) ) ) |
44 |
7
|
fveq2i |
|- ( Poly1 ` A ) = ( Poly1 ` ( N Mat R ) ) |
45 |
8 44
|
eqtri |
|- Q = ( Poly1 ` ( N Mat R ) ) |
46 |
43 45
|
eqtr4di |
|- ( ( n = N /\ r = R ) -> ( Poly1 ` ( n Mat r ) ) = Q ) |
47 |
43
|
fveq2d |
|- ( ( n = N /\ r = R ) -> ( .s ` ( Poly1 ` ( n Mat r ) ) ) = ( .s ` ( Poly1 ` ( N Mat R ) ) ) ) |
48 |
45
|
fveq2i |
|- ( .s ` Q ) = ( .s ` ( Poly1 ` ( N Mat R ) ) ) |
49 |
4 48
|
eqtri |
|- .* = ( .s ` ( Poly1 ` ( N Mat R ) ) ) |
50 |
47 49
|
eqtr4di |
|- ( ( n = N /\ r = R ) -> ( .s ` ( Poly1 ` ( n Mat r ) ) ) = .* ) |
51 |
|
eqidd |
|- ( ( n = N /\ r = R ) -> ( m decompPMat k ) = ( m decompPMat k ) ) |
52 |
43
|
fveq2d |
|- ( ( n = N /\ r = R ) -> ( mulGrp ` ( Poly1 ` ( n Mat r ) ) ) = ( mulGrp ` ( Poly1 ` ( N Mat R ) ) ) ) |
53 |
52
|
fveq2d |
|- ( ( n = N /\ r = R ) -> ( .g ` ( mulGrp ` ( Poly1 ` ( n Mat r ) ) ) ) = ( .g ` ( mulGrp ` ( Poly1 ` ( N Mat R ) ) ) ) ) |
54 |
45
|
fveq2i |
|- ( mulGrp ` Q ) = ( mulGrp ` ( Poly1 ` ( N Mat R ) ) ) |
55 |
54
|
fveq2i |
|- ( .g ` ( mulGrp ` Q ) ) = ( .g ` ( mulGrp ` ( Poly1 ` ( N Mat R ) ) ) ) |
56 |
5 55
|
eqtri |
|- .^ = ( .g ` ( mulGrp ` ( Poly1 ` ( N Mat R ) ) ) ) |
57 |
53 56
|
eqtr4di |
|- ( ( n = N /\ r = R ) -> ( .g ` ( mulGrp ` ( Poly1 ` ( n Mat r ) ) ) ) = .^ ) |
58 |
|
eqidd |
|- ( ( n = N /\ r = R ) -> k = k ) |
59 |
42
|
fveq2d |
|- ( ( n = N /\ r = R ) -> ( var1 ` ( n Mat r ) ) = ( var1 ` ( N Mat R ) ) ) |
60 |
7
|
fveq2i |
|- ( var1 ` A ) = ( var1 ` ( N Mat R ) ) |
61 |
6 60
|
eqtri |
|- X = ( var1 ` ( N Mat R ) ) |
62 |
59 61
|
eqtr4di |
|- ( ( n = N /\ r = R ) -> ( var1 ` ( n Mat r ) ) = X ) |
63 |
57 58 62
|
oveq123d |
|- ( ( n = N /\ r = R ) -> ( k ( .g ` ( mulGrp ` ( Poly1 ` ( n Mat r ) ) ) ) ( var1 ` ( n Mat r ) ) ) = ( k .^ X ) ) |
64 |
50 51 63
|
oveq123d |
|- ( ( n = N /\ r = R ) -> ( ( m decompPMat k ) ( .s ` ( Poly1 ` ( n Mat r ) ) ) ( k ( .g ` ( mulGrp ` ( Poly1 ` ( n Mat r ) ) ) ) ( var1 ` ( n Mat r ) ) ) ) = ( ( m decompPMat k ) .* ( k .^ X ) ) ) |
65 |
64
|
mpteq2dv |
|- ( ( n = N /\ r = R ) -> ( k e. NN0 |-> ( ( m decompPMat k ) ( .s ` ( Poly1 ` ( n Mat r ) ) ) ( k ( .g ` ( mulGrp ` ( Poly1 ` ( n Mat r ) ) ) ) ( var1 ` ( n Mat r ) ) ) ) ) = ( k e. NN0 |-> ( ( m decompPMat k ) .* ( k .^ X ) ) ) ) |
66 |
46 65
|
oveq12d |
|- ( ( n = N /\ r = R ) -> ( ( Poly1 ` ( n Mat r ) ) gsum ( k e. NN0 |-> ( ( m decompPMat k ) ( .s ` ( Poly1 ` ( n Mat r ) ) ) ( k ( .g ` ( mulGrp ` ( Poly1 ` ( n Mat r ) ) ) ) ( var1 ` ( n Mat r ) ) ) ) ) ) = ( Q gsum ( k e. NN0 |-> ( ( m decompPMat k ) .* ( k .^ X ) ) ) ) ) |
67 |
66
|
adantl |
|- ( ( ( N e. Fin /\ R e. V ) /\ ( n = N /\ r = R ) ) -> ( ( Poly1 ` ( n Mat r ) ) gsum ( k e. NN0 |-> ( ( m decompPMat k ) ( .s ` ( Poly1 ` ( n Mat r ) ) ) ( k ( .g ` ( mulGrp ` ( Poly1 ` ( n Mat r ) ) ) ) ( var1 ` ( n Mat r ) ) ) ) ) ) = ( Q gsum ( k e. NN0 |-> ( ( m decompPMat k ) .* ( k .^ X ) ) ) ) ) |
68 |
41 67
|
syl5eq |
|- ( ( ( N e. Fin /\ R e. V ) /\ ( n = N /\ r = R ) ) -> [_ ( n Mat r ) / a ]_ [_ ( Poly1 ` a ) / q ]_ ( q gsum ( k e. NN0 |-> ( ( m decompPMat k ) ( .s ` q ) ( k ( .g ` ( mulGrp ` q ) ) ( var1 ` a ) ) ) ) ) = ( Q gsum ( k e. NN0 |-> ( ( m decompPMat k ) .* ( k .^ X ) ) ) ) ) |
69 |
22 68
|
mpteq12dv |
|- ( ( ( N e. Fin /\ R e. V ) /\ ( n = N /\ r = R ) ) -> ( m e. ( Base ` ( n Mat ( Poly1 ` r ) ) ) |-> [_ ( n Mat r ) / a ]_ [_ ( Poly1 ` a ) / q ]_ ( q gsum ( k e. NN0 |-> ( ( m decompPMat k ) ( .s ` q ) ( k ( .g ` ( mulGrp ` q ) ) ( var1 ` a ) ) ) ) ) ) = ( m e. B |-> ( Q gsum ( k e. NN0 |-> ( ( m decompPMat k ) .* ( k .^ X ) ) ) ) ) ) |
70 |
|
simpl |
|- ( ( N e. Fin /\ R e. V ) -> N e. Fin ) |
71 |
|
elex |
|- ( R e. V -> R e. _V ) |
72 |
71
|
adantl |
|- ( ( N e. Fin /\ R e. V ) -> R e. _V ) |
73 |
3
|
fvexi |
|- B e. _V |
74 |
73
|
mptex |
|- ( m e. B |-> ( Q gsum ( k e. NN0 |-> ( ( m decompPMat k ) .* ( k .^ X ) ) ) ) ) e. _V |
75 |
74
|
a1i |
|- ( ( N e. Fin /\ R e. V ) -> ( m e. B |-> ( Q gsum ( k e. NN0 |-> ( ( m decompPMat k ) .* ( k .^ X ) ) ) ) ) e. _V ) |
76 |
11 69 70 72 75
|
ovmpod |
|- ( ( N e. Fin /\ R e. V ) -> ( N pMatToMatPoly R ) = ( m e. B |-> ( Q gsum ( k e. NN0 |-> ( ( m decompPMat k ) .* ( k .^ X ) ) ) ) ) ) |
77 |
9 76
|
syl5eq |
|- ( ( N e. Fin /\ R e. V ) -> T = ( m e. B |-> ( Q gsum ( k e. NN0 |-> ( ( m decompPMat k ) .* ( k .^ X ) ) ) ) ) ) |