Step |
Hyp |
Ref |
Expression |
1 |
|
cayleyhamilton.a |
⊢ 𝐴 = ( 𝑁 Mat 𝑅 ) |
2 |
|
cayleyhamilton.b |
⊢ 𝐵 = ( Base ‘ 𝐴 ) |
3 |
|
cayleyhamilton.0 |
⊢ 0 = ( 0g ‘ 𝐴 ) |
4 |
|
cayleyhamilton.c |
⊢ 𝐶 = ( 𝑁 CharPlyMat 𝑅 ) |
5 |
|
cayleyhamilton.k |
⊢ 𝐾 = ( coe1 ‘ ( 𝐶 ‘ 𝑀 ) ) |
6 |
|
cayleyhamilton.m |
⊢ ∗ = ( ·𝑠 ‘ 𝐴 ) |
7 |
|
cayleyhamilton.e |
⊢ ↑ = ( .g ‘ ( mulGrp ‘ 𝐴 ) ) |
8 |
|
eqid |
⊢ ( 1r ‘ 𝐴 ) = ( 1r ‘ 𝐴 ) |
9 |
|
eqid |
⊢ ( Poly1 ‘ 𝑅 ) = ( Poly1 ‘ 𝑅 ) |
10 |
|
eqid |
⊢ ( 𝑁 Mat ( Poly1 ‘ 𝑅 ) ) = ( 𝑁 Mat ( Poly1 ‘ 𝑅 ) ) |
11 |
|
eqid |
⊢ ( .r ‘ ( 𝑁 Mat ( Poly1 ‘ 𝑅 ) ) ) = ( .r ‘ ( 𝑁 Mat ( Poly1 ‘ 𝑅 ) ) ) |
12 |
|
eqid |
⊢ ( -g ‘ ( 𝑁 Mat ( Poly1 ‘ 𝑅 ) ) ) = ( -g ‘ ( 𝑁 Mat ( Poly1 ‘ 𝑅 ) ) ) |
13 |
|
eqid |
⊢ ( 0g ‘ ( 𝑁 Mat ( Poly1 ‘ 𝑅 ) ) ) = ( 0g ‘ ( 𝑁 Mat ( Poly1 ‘ 𝑅 ) ) ) |
14 |
|
eqid |
⊢ ( Base ‘ ( 𝑁 Mat ( Poly1 ‘ 𝑅 ) ) ) = ( Base ‘ ( 𝑁 Mat ( Poly1 ‘ 𝑅 ) ) ) |
15 |
|
eqid |
⊢ ( .g ‘ ( mulGrp ‘ ( 𝑁 Mat ( Poly1 ‘ 𝑅 ) ) ) ) = ( .g ‘ ( mulGrp ‘ ( 𝑁 Mat ( Poly1 ‘ 𝑅 ) ) ) ) |
16 |
|
eqid |
⊢ ( 𝑁 matToPolyMat 𝑅 ) = ( 𝑁 matToPolyMat 𝑅 ) |
17 |
|
eqeq1 |
⊢ ( 𝑙 = 𝑛 → ( 𝑙 = 0 ↔ 𝑛 = 0 ) ) |
18 |
|
eqeq1 |
⊢ ( 𝑙 = 𝑛 → ( 𝑙 = ( 𝑥 + 1 ) ↔ 𝑛 = ( 𝑥 + 1 ) ) ) |
19 |
|
breq2 |
⊢ ( 𝑙 = 𝑛 → ( ( 𝑥 + 1 ) < 𝑙 ↔ ( 𝑥 + 1 ) < 𝑛 ) ) |
20 |
|
fvoveq1 |
⊢ ( 𝑙 = 𝑛 → ( 𝑦 ‘ ( 𝑙 − 1 ) ) = ( 𝑦 ‘ ( 𝑛 − 1 ) ) ) |
21 |
20
|
fveq2d |
⊢ ( 𝑙 = 𝑛 → ( ( 𝑁 matToPolyMat 𝑅 ) ‘ ( 𝑦 ‘ ( 𝑙 − 1 ) ) ) = ( ( 𝑁 matToPolyMat 𝑅 ) ‘ ( 𝑦 ‘ ( 𝑛 − 1 ) ) ) ) |
22 |
|
2fveq3 |
⊢ ( 𝑙 = 𝑛 → ( ( 𝑁 matToPolyMat 𝑅 ) ‘ ( 𝑦 ‘ 𝑙 ) ) = ( ( 𝑁 matToPolyMat 𝑅 ) ‘ ( 𝑦 ‘ 𝑛 ) ) ) |
23 |
22
|
oveq2d |
⊢ ( 𝑙 = 𝑛 → ( ( ( 𝑁 matToPolyMat 𝑅 ) ‘ 𝑀 ) ( .r ‘ ( 𝑁 Mat ( Poly1 ‘ 𝑅 ) ) ) ( ( 𝑁 matToPolyMat 𝑅 ) ‘ ( 𝑦 ‘ 𝑙 ) ) ) = ( ( ( 𝑁 matToPolyMat 𝑅 ) ‘ 𝑀 ) ( .r ‘ ( 𝑁 Mat ( Poly1 ‘ 𝑅 ) ) ) ( ( 𝑁 matToPolyMat 𝑅 ) ‘ ( 𝑦 ‘ 𝑛 ) ) ) ) |
24 |
21 23
|
oveq12d |
⊢ ( 𝑙 = 𝑛 → ( ( ( 𝑁 matToPolyMat 𝑅 ) ‘ ( 𝑦 ‘ ( 𝑙 − 1 ) ) ) ( -g ‘ ( 𝑁 Mat ( Poly1 ‘ 𝑅 ) ) ) ( ( ( 𝑁 matToPolyMat 𝑅 ) ‘ 𝑀 ) ( .r ‘ ( 𝑁 Mat ( Poly1 ‘ 𝑅 ) ) ) ( ( 𝑁 matToPolyMat 𝑅 ) ‘ ( 𝑦 ‘ 𝑙 ) ) ) ) = ( ( ( 𝑁 matToPolyMat 𝑅 ) ‘ ( 𝑦 ‘ ( 𝑛 − 1 ) ) ) ( -g ‘ ( 𝑁 Mat ( Poly1 ‘ 𝑅 ) ) ) ( ( ( 𝑁 matToPolyMat 𝑅 ) ‘ 𝑀 ) ( .r ‘ ( 𝑁 Mat ( Poly1 ‘ 𝑅 ) ) ) ( ( 𝑁 matToPolyMat 𝑅 ) ‘ ( 𝑦 ‘ 𝑛 ) ) ) ) ) |
25 |
19 24
|
ifbieq2d |
⊢ ( 𝑙 = 𝑛 → if ( ( 𝑥 + 1 ) < 𝑙 , ( 0g ‘ ( 𝑁 Mat ( Poly1 ‘ 𝑅 ) ) ) , ( ( ( 𝑁 matToPolyMat 𝑅 ) ‘ ( 𝑦 ‘ ( 𝑙 − 1 ) ) ) ( -g ‘ ( 𝑁 Mat ( Poly1 ‘ 𝑅 ) ) ) ( ( ( 𝑁 matToPolyMat 𝑅 ) ‘ 𝑀 ) ( .r ‘ ( 𝑁 Mat ( Poly1 ‘ 𝑅 ) ) ) ( ( 𝑁 matToPolyMat 𝑅 ) ‘ ( 𝑦 ‘ 𝑙 ) ) ) ) ) = if ( ( 𝑥 + 1 ) < 𝑛 , ( 0g ‘ ( 𝑁 Mat ( Poly1 ‘ 𝑅 ) ) ) , ( ( ( 𝑁 matToPolyMat 𝑅 ) ‘ ( 𝑦 ‘ ( 𝑛 − 1 ) ) ) ( -g ‘ ( 𝑁 Mat ( Poly1 ‘ 𝑅 ) ) ) ( ( ( 𝑁 matToPolyMat 𝑅 ) ‘ 𝑀 ) ( .r ‘ ( 𝑁 Mat ( Poly1 ‘ 𝑅 ) ) ) ( ( 𝑁 matToPolyMat 𝑅 ) ‘ ( 𝑦 ‘ 𝑛 ) ) ) ) ) ) |
26 |
18 25
|
ifbieq2d |
⊢ ( 𝑙 = 𝑛 → if ( 𝑙 = ( 𝑥 + 1 ) , ( ( 𝑁 matToPolyMat 𝑅 ) ‘ ( 𝑦 ‘ 𝑥 ) ) , if ( ( 𝑥 + 1 ) < 𝑙 , ( 0g ‘ ( 𝑁 Mat ( Poly1 ‘ 𝑅 ) ) ) , ( ( ( 𝑁 matToPolyMat 𝑅 ) ‘ ( 𝑦 ‘ ( 𝑙 − 1 ) ) ) ( -g ‘ ( 𝑁 Mat ( Poly1 ‘ 𝑅 ) ) ) ( ( ( 𝑁 matToPolyMat 𝑅 ) ‘ 𝑀 ) ( .r ‘ ( 𝑁 Mat ( Poly1 ‘ 𝑅 ) ) ) ( ( 𝑁 matToPolyMat 𝑅 ) ‘ ( 𝑦 ‘ 𝑙 ) ) ) ) ) ) = if ( 𝑛 = ( 𝑥 + 1 ) , ( ( 𝑁 matToPolyMat 𝑅 ) ‘ ( 𝑦 ‘ 𝑥 ) ) , if ( ( 𝑥 + 1 ) < 𝑛 , ( 0g ‘ ( 𝑁 Mat ( Poly1 ‘ 𝑅 ) ) ) , ( ( ( 𝑁 matToPolyMat 𝑅 ) ‘ ( 𝑦 ‘ ( 𝑛 − 1 ) ) ) ( -g ‘ ( 𝑁 Mat ( Poly1 ‘ 𝑅 ) ) ) ( ( ( 𝑁 matToPolyMat 𝑅 ) ‘ 𝑀 ) ( .r ‘ ( 𝑁 Mat ( Poly1 ‘ 𝑅 ) ) ) ( ( 𝑁 matToPolyMat 𝑅 ) ‘ ( 𝑦 ‘ 𝑛 ) ) ) ) ) ) ) |
27 |
17 26
|
ifbieq2d |
⊢ ( 𝑙 = 𝑛 → if ( 𝑙 = 0 , ( ( 0g ‘ ( 𝑁 Mat ( Poly1 ‘ 𝑅 ) ) ) ( -g ‘ ( 𝑁 Mat ( Poly1 ‘ 𝑅 ) ) ) ( ( ( 𝑁 matToPolyMat 𝑅 ) ‘ 𝑀 ) ( .r ‘ ( 𝑁 Mat ( Poly1 ‘ 𝑅 ) ) ) ( ( 𝑁 matToPolyMat 𝑅 ) ‘ ( 𝑦 ‘ 0 ) ) ) ) , if ( 𝑙 = ( 𝑥 + 1 ) , ( ( 𝑁 matToPolyMat 𝑅 ) ‘ ( 𝑦 ‘ 𝑥 ) ) , if ( ( 𝑥 + 1 ) < 𝑙 , ( 0g ‘ ( 𝑁 Mat ( Poly1 ‘ 𝑅 ) ) ) , ( ( ( 𝑁 matToPolyMat 𝑅 ) ‘ ( 𝑦 ‘ ( 𝑙 − 1 ) ) ) ( -g ‘ ( 𝑁 Mat ( Poly1 ‘ 𝑅 ) ) ) ( ( ( 𝑁 matToPolyMat 𝑅 ) ‘ 𝑀 ) ( .r ‘ ( 𝑁 Mat ( Poly1 ‘ 𝑅 ) ) ) ( ( 𝑁 matToPolyMat 𝑅 ) ‘ ( 𝑦 ‘ 𝑙 ) ) ) ) ) ) ) = if ( 𝑛 = 0 , ( ( 0g ‘ ( 𝑁 Mat ( Poly1 ‘ 𝑅 ) ) ) ( -g ‘ ( 𝑁 Mat ( Poly1 ‘ 𝑅 ) ) ) ( ( ( 𝑁 matToPolyMat 𝑅 ) ‘ 𝑀 ) ( .r ‘ ( 𝑁 Mat ( Poly1 ‘ 𝑅 ) ) ) ( ( 𝑁 matToPolyMat 𝑅 ) ‘ ( 𝑦 ‘ 0 ) ) ) ) , if ( 𝑛 = ( 𝑥 + 1 ) , ( ( 𝑁 matToPolyMat 𝑅 ) ‘ ( 𝑦 ‘ 𝑥 ) ) , if ( ( 𝑥 + 1 ) < 𝑛 , ( 0g ‘ ( 𝑁 Mat ( Poly1 ‘ 𝑅 ) ) ) , ( ( ( 𝑁 matToPolyMat 𝑅 ) ‘ ( 𝑦 ‘ ( 𝑛 − 1 ) ) ) ( -g ‘ ( 𝑁 Mat ( Poly1 ‘ 𝑅 ) ) ) ( ( ( 𝑁 matToPolyMat 𝑅 ) ‘ 𝑀 ) ( .r ‘ ( 𝑁 Mat ( Poly1 ‘ 𝑅 ) ) ) ( ( 𝑁 matToPolyMat 𝑅 ) ‘ ( 𝑦 ‘ 𝑛 ) ) ) ) ) ) ) ) |
28 |
27
|
cbvmptv |
⊢ ( 𝑙 ∈ ℕ0 ↦ if ( 𝑙 = 0 , ( ( 0g ‘ ( 𝑁 Mat ( Poly1 ‘ 𝑅 ) ) ) ( -g ‘ ( 𝑁 Mat ( Poly1 ‘ 𝑅 ) ) ) ( ( ( 𝑁 matToPolyMat 𝑅 ) ‘ 𝑀 ) ( .r ‘ ( 𝑁 Mat ( Poly1 ‘ 𝑅 ) ) ) ( ( 𝑁 matToPolyMat 𝑅 ) ‘ ( 𝑦 ‘ 0 ) ) ) ) , if ( 𝑙 = ( 𝑥 + 1 ) , ( ( 𝑁 matToPolyMat 𝑅 ) ‘ ( 𝑦 ‘ 𝑥 ) ) , if ( ( 𝑥 + 1 ) < 𝑙 , ( 0g ‘ ( 𝑁 Mat ( Poly1 ‘ 𝑅 ) ) ) , ( ( ( 𝑁 matToPolyMat 𝑅 ) ‘ ( 𝑦 ‘ ( 𝑙 − 1 ) ) ) ( -g ‘ ( 𝑁 Mat ( Poly1 ‘ 𝑅 ) ) ) ( ( ( 𝑁 matToPolyMat 𝑅 ) ‘ 𝑀 ) ( .r ‘ ( 𝑁 Mat ( Poly1 ‘ 𝑅 ) ) ) ( ( 𝑁 matToPolyMat 𝑅 ) ‘ ( 𝑦 ‘ 𝑙 ) ) ) ) ) ) ) ) = ( 𝑛 ∈ ℕ0 ↦ if ( 𝑛 = 0 , ( ( 0g ‘ ( 𝑁 Mat ( Poly1 ‘ 𝑅 ) ) ) ( -g ‘ ( 𝑁 Mat ( Poly1 ‘ 𝑅 ) ) ) ( ( ( 𝑁 matToPolyMat 𝑅 ) ‘ 𝑀 ) ( .r ‘ ( 𝑁 Mat ( Poly1 ‘ 𝑅 ) ) ) ( ( 𝑁 matToPolyMat 𝑅 ) ‘ ( 𝑦 ‘ 0 ) ) ) ) , if ( 𝑛 = ( 𝑥 + 1 ) , ( ( 𝑁 matToPolyMat 𝑅 ) ‘ ( 𝑦 ‘ 𝑥 ) ) , if ( ( 𝑥 + 1 ) < 𝑛 , ( 0g ‘ ( 𝑁 Mat ( Poly1 ‘ 𝑅 ) ) ) , ( ( ( 𝑁 matToPolyMat 𝑅 ) ‘ ( 𝑦 ‘ ( 𝑛 − 1 ) ) ) ( -g ‘ ( 𝑁 Mat ( Poly1 ‘ 𝑅 ) ) ) ( ( ( 𝑁 matToPolyMat 𝑅 ) ‘ 𝑀 ) ( .r ‘ ( 𝑁 Mat ( Poly1 ‘ 𝑅 ) ) ) ( ( 𝑁 matToPolyMat 𝑅 ) ‘ ( 𝑦 ‘ 𝑛 ) ) ) ) ) ) ) ) |
29 |
|
eqid |
⊢ ( 𝑁 cPolyMatToMat 𝑅 ) = ( 𝑁 cPolyMatToMat 𝑅 ) |
30 |
1 2 3 8 6 7 4 5 9 10 11 12 13 14 15 16 28 29
|
cayleyhamilton0 |
⊢ ( ( 𝑁 ∈ Fin ∧ 𝑅 ∈ CRing ∧ 𝑀 ∈ 𝐵 ) → ( 𝐴 Σg ( 𝑛 ∈ ℕ0 ↦ ( ( 𝐾 ‘ 𝑛 ) ∗ ( 𝑛 ↑ 𝑀 ) ) ) ) = 0 ) |