| Step | Hyp | Ref | Expression | 
						
							| 1 |  | cayleyhamilton.a |  |-  A = ( N Mat R ) | 
						
							| 2 |  | cayleyhamilton.b |  |-  B = ( Base ` A ) | 
						
							| 3 |  | cayleyhamilton.0 |  |-  .0. = ( 0g ` A ) | 
						
							| 4 |  | cayleyhamilton.c |  |-  C = ( N CharPlyMat R ) | 
						
							| 5 |  | cayleyhamilton.k |  |-  K = ( coe1 ` ( C ` M ) ) | 
						
							| 6 |  | cayleyhamilton.m |  |-  .* = ( .s ` A ) | 
						
							| 7 |  | cayleyhamilton.e |  |-  .^ = ( .g ` ( mulGrp ` A ) ) | 
						
							| 8 |  | eqid |  |-  ( 1r ` A ) = ( 1r ` A ) | 
						
							| 9 |  | eqid |  |-  ( Poly1 ` R ) = ( Poly1 ` R ) | 
						
							| 10 |  | eqid |  |-  ( N Mat ( Poly1 ` R ) ) = ( N Mat ( Poly1 ` R ) ) | 
						
							| 11 |  | eqid |  |-  ( .r ` ( N Mat ( Poly1 ` R ) ) ) = ( .r ` ( N Mat ( Poly1 ` R ) ) ) | 
						
							| 12 |  | eqid |  |-  ( -g ` ( N Mat ( Poly1 ` R ) ) ) = ( -g ` ( N Mat ( Poly1 ` R ) ) ) | 
						
							| 13 |  | eqid |  |-  ( 0g ` ( N Mat ( Poly1 ` R ) ) ) = ( 0g ` ( N Mat ( Poly1 ` R ) ) ) | 
						
							| 14 |  | eqid |  |-  ( Base ` ( N Mat ( Poly1 ` R ) ) ) = ( Base ` ( N Mat ( Poly1 ` R ) ) ) | 
						
							| 15 |  | eqid |  |-  ( .g ` ( mulGrp ` ( N Mat ( Poly1 ` R ) ) ) ) = ( .g ` ( mulGrp ` ( N Mat ( Poly1 ` 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 ) ( .r ` ( N Mat ( Poly1 ` R ) ) ) ( ( N matToPolyMat R ) ` ( y ` l ) ) ) = ( ( ( N matToPolyMat R ) ` M ) ( .r ` ( N Mat ( Poly1 ` R ) ) ) ( ( N matToPolyMat R ) ` ( y ` n ) ) ) ) | 
						
							| 24 | 21 23 | oveq12d |  |-  ( l = n -> ( ( ( N matToPolyMat R ) ` ( y ` ( l - 1 ) ) ) ( -g ` ( N Mat ( Poly1 ` R ) ) ) ( ( ( N matToPolyMat R ) ` M ) ( .r ` ( N Mat ( Poly1 ` R ) ) ) ( ( N matToPolyMat R ) ` ( y ` l ) ) ) ) = ( ( ( N matToPolyMat R ) ` ( y ` ( n - 1 ) ) ) ( -g ` ( N Mat ( Poly1 ` R ) ) ) ( ( ( N matToPolyMat R ) ` M ) ( .r ` ( N Mat ( Poly1 ` R ) ) ) ( ( N matToPolyMat R ) ` ( y ` n ) ) ) ) ) | 
						
							| 25 | 19 24 | ifbieq2d |  |-  ( l = n -> if ( ( x + 1 ) < l , ( 0g ` ( N Mat ( Poly1 ` R ) ) ) , ( ( ( N matToPolyMat R ) ` ( y ` ( l - 1 ) ) ) ( -g ` ( N Mat ( Poly1 ` R ) ) ) ( ( ( N matToPolyMat R ) ` M ) ( .r ` ( N Mat ( Poly1 ` R ) ) ) ( ( N matToPolyMat R ) ` ( y ` l ) ) ) ) ) = if ( ( x + 1 ) < n , ( 0g ` ( N Mat ( Poly1 ` R ) ) ) , ( ( ( N matToPolyMat R ) ` ( y ` ( n - 1 ) ) ) ( -g ` ( N Mat ( Poly1 ` R ) ) ) ( ( ( N matToPolyMat R ) ` M ) ( .r ` ( N Mat ( Poly1 ` 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 , ( 0g ` ( N Mat ( Poly1 ` R ) ) ) , ( ( ( N matToPolyMat R ) ` ( y ` ( l - 1 ) ) ) ( -g ` ( N Mat ( Poly1 ` R ) ) ) ( ( ( N matToPolyMat R ) ` M ) ( .r ` ( N Mat ( Poly1 ` R ) ) ) ( ( N matToPolyMat R ) ` ( y ` l ) ) ) ) ) ) = if ( n = ( x + 1 ) , ( ( N matToPolyMat R ) ` ( y ` x ) ) , if ( ( x + 1 ) < n , ( 0g ` ( N Mat ( Poly1 ` R ) ) ) , ( ( ( N matToPolyMat R ) ` ( y ` ( n - 1 ) ) ) ( -g ` ( N Mat ( Poly1 ` R ) ) ) ( ( ( N matToPolyMat R ) ` M ) ( .r ` ( N Mat ( Poly1 ` R ) ) ) ( ( N matToPolyMat R ) ` ( y ` n ) ) ) ) ) ) ) | 
						
							| 27 | 17 26 | ifbieq2d |  |-  ( l = n -> if ( l = 0 , ( ( 0g ` ( N Mat ( Poly1 ` R ) ) ) ( -g ` ( N Mat ( Poly1 ` R ) ) ) ( ( ( N matToPolyMat R ) ` M ) ( .r ` ( N Mat ( Poly1 ` R ) ) ) ( ( N matToPolyMat R ) ` ( y ` 0 ) ) ) ) , if ( l = ( x + 1 ) , ( ( N matToPolyMat R ) ` ( y ` x ) ) , if ( ( x + 1 ) < l , ( 0g ` ( N Mat ( Poly1 ` R ) ) ) , ( ( ( N matToPolyMat R ) ` ( y ` ( l - 1 ) ) ) ( -g ` ( N Mat ( Poly1 ` R ) ) ) ( ( ( N matToPolyMat R ) ` M ) ( .r ` ( N Mat ( Poly1 ` R ) ) ) ( ( N matToPolyMat R ) ` ( y ` l ) ) ) ) ) ) ) = if ( n = 0 , ( ( 0g ` ( N Mat ( Poly1 ` R ) ) ) ( -g ` ( N Mat ( Poly1 ` R ) ) ) ( ( ( N matToPolyMat R ) ` M ) ( .r ` ( N Mat ( Poly1 ` R ) ) ) ( ( N matToPolyMat R ) ` ( y ` 0 ) ) ) ) , if ( n = ( x + 1 ) , ( ( N matToPolyMat R ) ` ( y ` x ) ) , if ( ( x + 1 ) < n , ( 0g ` ( N Mat ( Poly1 ` R ) ) ) , ( ( ( N matToPolyMat R ) ` ( y ` ( n - 1 ) ) ) ( -g ` ( N Mat ( Poly1 ` R ) ) ) ( ( ( N matToPolyMat R ) ` M ) ( .r ` ( N Mat ( Poly1 ` R ) ) ) ( ( N matToPolyMat R ) ` ( y ` n ) ) ) ) ) ) ) ) | 
						
							| 28 | 27 | cbvmptv |  |-  ( l e. NN0 |-> if ( l = 0 , ( ( 0g ` ( N Mat ( Poly1 ` R ) ) ) ( -g ` ( N Mat ( Poly1 ` R ) ) ) ( ( ( N matToPolyMat R ) ` M ) ( .r ` ( N Mat ( Poly1 ` R ) ) ) ( ( N matToPolyMat R ) ` ( y ` 0 ) ) ) ) , if ( l = ( x + 1 ) , ( ( N matToPolyMat R ) ` ( y ` x ) ) , if ( ( x + 1 ) < l , ( 0g ` ( N Mat ( Poly1 ` R ) ) ) , ( ( ( N matToPolyMat R ) ` ( y ` ( l - 1 ) ) ) ( -g ` ( N Mat ( Poly1 ` R ) ) ) ( ( ( N matToPolyMat R ) ` M ) ( .r ` ( N Mat ( Poly1 ` R ) ) ) ( ( N matToPolyMat R ) ` ( y ` l ) ) ) ) ) ) ) ) = ( n e. NN0 |-> if ( n = 0 , ( ( 0g ` ( N Mat ( Poly1 ` R ) ) ) ( -g ` ( N Mat ( Poly1 ` R ) ) ) ( ( ( N matToPolyMat R ) ` M ) ( .r ` ( N Mat ( Poly1 ` R ) ) ) ( ( N matToPolyMat R ) ` ( y ` 0 ) ) ) ) , if ( n = ( x + 1 ) , ( ( N matToPolyMat R ) ` ( y ` x ) ) , if ( ( x + 1 ) < n , ( 0g ` ( N Mat ( Poly1 ` R ) ) ) , ( ( ( N matToPolyMat R ) ` ( y ` ( n - 1 ) ) ) ( -g ` ( N Mat ( Poly1 ` R ) ) ) ( ( ( N matToPolyMat R ) ` M ) ( .r ` ( N Mat ( Poly1 ` 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 e. Fin /\ R e. CRing /\ M e. B ) -> ( A gsum ( n e. NN0 |-> ( ( K ` n ) .* ( n .^ M ) ) ) ) = .0. ) |