Metamath Proof Explorer


Theorem cayleyhamilton

Description: The Cayley-Hamilton theorem: A matrix over a commutative ring "satisfies its own characteristic equation", see theorem 7.8 in Roman p. 170 (without proof!), or theorem 3.1 in Lang p. 561. In other words, a matrix over a commutative ring "inserted" into its characteristic polynomial results in zero. This is Metamath 100 proof #49. (Contributed by Alexander van der Vekens, 25-Nov-2019)

Ref Expression
Hypotheses cayleyhamilton.a ⊢ A = N Mat R
cayleyhamilton.b ⊢ B = Base A
cayleyhamilton.0 ⊢ 0 ˙ = 0 A
cayleyhamilton.c ⊢ C = N CharPlyMat R
cayleyhamilton.k ⊢ K = coe 1 ⁡ C ⁡ M
cayleyhamilton.m ⊢ ∗ ˙ = ⋅ A
cayleyhamilton.e ⊢ × ˙ = ⋅ mulGrp A
Assertion cayleyhamilton ⊢ N ∈ Fin ∧ R ∈ CRing ∧ M ∈ B → ∑ A n ∈ ℕ 0 K ⁡ n ∗ ˙ n × ˙ M = 0 ˙

Proof

Step Hyp Ref Expression
1 cayleyhamilton.a ⊢ A = N Mat R
2 cayleyhamilton.b ⊢ B = Base A
3 cayleyhamilton.0 ⊢ 0 ˙ = 0 A
4 cayleyhamilton.c ⊢ C = N CharPlyMat R
5 cayleyhamilton.k ⊢ K = coe 1 ⁡ C ⁡ M
6 cayleyhamilton.m ⊢ ∗ ˙ = ⋅ A
7 cayleyhamilton.e ⊢ × ˙ = ⋅ mulGrp A
8 eqid ⊢ 1 A = 1 A
9 eqid ⊢ Poly 1 ⁡ R = Poly 1 ⁡ R
10 eqid ⊢ N Mat Poly 1 ⁡ R = N Mat Poly 1 ⁡ R
11 eqid ⊢ ⋅ N Mat Poly 1 ⁡ R = ⋅ N Mat Poly 1 ⁡ R
12 eqid ⊢ - N Mat Poly 1 ⁡ R = - N Mat Poly 1 ⁡ R
13 eqid ⊢ 0 N Mat Poly 1 ⁡ R = 0 N Mat Poly 1 ⁡ R
14 eqid ⊢ Base N Mat Poly 1 ⁡ R = Base N Mat Poly 1 ⁡ R
15 eqid ⊢ ⋅ mulGrp N Mat Poly 1 ⁡ R = ⋅ mulGrp N Mat Poly 1 ⁡ R
16 eqid ⊢ N matToPolyMat R = N matToPolyMat R
17 eqeq1 ⊢ l = n → l = 0 ↔ n = 0
18 eqeq1 ⊢ l = n → l = x + 1 ↔ n = x + 1
19 breq2 ⊢ l = n → x + 1 < l ↔ x + 1 < n
20 fvoveq1 ⊢ l = n → y ⁡ l − 1 = y ⁡ n − 1
21 20 fveq2d ⊢ l = n → N matToPolyMat R ⁡ y ⁡ l − 1 = N matToPolyMat R ⁡ y ⁡ n − 1
22 2fveq3 ⊢ l = n → N matToPolyMat R ⁡ y ⁡ l = N matToPolyMat R ⁡ y ⁡ n
23 22 oveq2d ⊢ l = n → N matToPolyMat R ⁡ M ⋅ N Mat Poly 1 ⁡ R N matToPolyMat R ⁡ y ⁡ l = N matToPolyMat R ⁡ M ⋅ N Mat Poly 1 ⁡ R N matToPolyMat R ⁡ y ⁡ n
24 21 23 oveq12d ⊢ l = n → N matToPolyMat R ⁡ y ⁡ l − 1 - N Mat Poly 1 ⁡ R N matToPolyMat R ⁡ M ⋅ N Mat Poly 1 ⁡ R N matToPolyMat R ⁡ y ⁡ l = N matToPolyMat R ⁡ y ⁡ n − 1 - N Mat Poly 1 ⁡ R N matToPolyMat R ⁡ M ⋅ N Mat Poly 1 ⁡ R N matToPolyMat R ⁡ y ⁡ n
25 19 24 ifbieq2d ⊢ l = n → if x + 1 < l 0 N Mat Poly 1 ⁡ R N matToPolyMat R ⁡ y ⁡ l − 1 - N Mat Poly 1 ⁡ R N matToPolyMat R ⁡ M ⋅ N Mat Poly 1 ⁡ R N matToPolyMat R ⁡ y ⁡ l = if x + 1 < n 0 N Mat Poly 1 ⁡ R N matToPolyMat R ⁡ y ⁡ n − 1 - N Mat Poly 1 ⁡ R N matToPolyMat R ⁡ M ⋅ N Mat Poly 1 ⁡ R N matToPolyMat R ⁡ y ⁡ n
26 18 25 ifbieq2d ⊢ l = n → if l = x + 1 N matToPolyMat R ⁡ y ⁡ x if x + 1 < l 0 N Mat Poly 1 ⁡ R N matToPolyMat R ⁡ y ⁡ l − 1 - N Mat Poly 1 ⁡ R N matToPolyMat R ⁡ M ⋅ N Mat Poly 1 ⁡ R N matToPolyMat R ⁡ y ⁡ l = if n = x + 1 N matToPolyMat R ⁡ y ⁡ x if x + 1 < n 0 N Mat Poly 1 ⁡ R N matToPolyMat R ⁡ y ⁡ n − 1 - N Mat Poly 1 ⁡ R N matToPolyMat R ⁡ M ⋅ N Mat Poly 1 ⁡ R N matToPolyMat R ⁡ y ⁡ n
27 17 26 ifbieq2d ⊢ l = n → if l = 0 0 N Mat Poly 1 ⁡ R - N Mat Poly 1 ⁡ R N matToPolyMat R ⁡ M ⋅ N Mat Poly 1 ⁡ R N matToPolyMat R ⁡ y ⁡ 0 if l = x + 1 N matToPolyMat R ⁡ y ⁡ x if x + 1 < l 0 N Mat Poly 1 ⁡ R N matToPolyMat R ⁡ y ⁡ l − 1 - N Mat Poly 1 ⁡ R N matToPolyMat R ⁡ M ⋅ N Mat Poly 1 ⁡ R N matToPolyMat R ⁡ y ⁡ l = if n = 0 0 N Mat Poly 1 ⁡ R - N Mat Poly 1 ⁡ R N matToPolyMat R ⁡ M ⋅ N Mat Poly 1 ⁡ R N matToPolyMat R ⁡ y ⁡ 0 if n = x + 1 N matToPolyMat R ⁡ y ⁡ x if x + 1 < n 0 N Mat Poly 1 ⁡ R N matToPolyMat R ⁡ y ⁡ n − 1 - N Mat Poly 1 ⁡ R N matToPolyMat R ⁡ M ⋅ N Mat Poly 1 ⁡ R N matToPolyMat R ⁡ y ⁡ n
28 27 cbvmptv ⊢ l ∈ ℕ 0 ⟼ if l = 0 0 N Mat Poly 1 ⁡ R - N Mat Poly 1 ⁡ R N matToPolyMat R ⁡ M ⋅ N Mat Poly 1 ⁡ R N matToPolyMat R ⁡ y ⁡ 0 if l = x + 1 N matToPolyMat R ⁡ y ⁡ x if x + 1 < l 0 N Mat Poly 1 ⁡ R N matToPolyMat R ⁡ y ⁡ l − 1 - N Mat Poly 1 ⁡ R N matToPolyMat R ⁡ M ⋅ N Mat Poly 1 ⁡ R N matToPolyMat R ⁡ y ⁡ l = n ∈ ℕ 0 ⟼ if n = 0 0 N Mat Poly 1 ⁡ R - N Mat Poly 1 ⁡ R N matToPolyMat R ⁡ M ⋅ N Mat Poly 1 ⁡ R N matToPolyMat R ⁡ y ⁡ 0 if n = x + 1 N matToPolyMat R ⁡ y ⁡ x if x + 1 < n 0 N Mat Poly 1 ⁡ R N matToPolyMat R ⁡ y ⁡ n − 1 - N Mat Poly 1 ⁡ R N matToPolyMat R ⁡ M ⋅ N Mat Poly 1 ⁡ R N matToPolyMat R ⁡ y ⁡ n
29 eqid ⊢ N cPolyMatToMat R = N cPolyMatToMat R
30 1 2 3 8 6 7 4 5 9 10 11 12 13 14 15 16 28 29 cayleyhamilton0 ⊢ N ∈ Fin ∧ R ∈ CRing ∧ M ∈ B → ∑ A n ∈ ℕ 0 K ⁡ n ∗ ˙ n × ˙ M = 0 ˙