| Step | Hyp | Ref | Expression | 
						
							| 1 |  | chpmat0.c | ⊢ 𝐶  =  ( ∅  CharPlyMat  𝑅 ) | 
						
							| 2 |  | 0fi | ⊢ ∅  ∈  Fin | 
						
							| 3 |  | id | ⊢ ( 𝑅  ∈  Ring  →  𝑅  ∈  Ring ) | 
						
							| 4 |  | 0ex | ⊢ ∅  ∈  V | 
						
							| 5 | 4 | snid | ⊢ ∅  ∈  { ∅ } | 
						
							| 6 |  | mat0dimbas0 | ⊢ ( 𝑅  ∈  Ring  →  ( Base ‘ ( ∅  Mat  𝑅 ) )  =  { ∅ } ) | 
						
							| 7 | 5 6 | eleqtrrid | ⊢ ( 𝑅  ∈  Ring  →  ∅  ∈  ( Base ‘ ( ∅  Mat  𝑅 ) ) ) | 
						
							| 8 |  | eqid | ⊢ ( ∅  Mat  𝑅 )  =  ( ∅  Mat  𝑅 ) | 
						
							| 9 |  | eqid | ⊢ ( Base ‘ ( ∅  Mat  𝑅 ) )  =  ( Base ‘ ( ∅  Mat  𝑅 ) ) | 
						
							| 10 |  | eqid | ⊢ ( Poly1 ‘ 𝑅 )  =  ( Poly1 ‘ 𝑅 ) | 
						
							| 11 |  | eqid | ⊢ ( ∅  Mat  ( Poly1 ‘ 𝑅 ) )  =  ( ∅  Mat  ( Poly1 ‘ 𝑅 ) ) | 
						
							| 12 |  | eqid | ⊢ ( ∅  maDet  ( Poly1 ‘ 𝑅 ) )  =  ( ∅  maDet  ( Poly1 ‘ 𝑅 ) ) | 
						
							| 13 |  | eqid | ⊢ ( -g ‘ ( ∅  Mat  ( Poly1 ‘ 𝑅 ) ) )  =  ( -g ‘ ( ∅  Mat  ( Poly1 ‘ 𝑅 ) ) ) | 
						
							| 14 |  | eqid | ⊢ ( var1 ‘ 𝑅 )  =  ( var1 ‘ 𝑅 ) | 
						
							| 15 |  | eqid | ⊢ (  ·𝑠  ‘ ( ∅  Mat  ( Poly1 ‘ 𝑅 ) ) )  =  (  ·𝑠  ‘ ( ∅  Mat  ( Poly1 ‘ 𝑅 ) ) ) | 
						
							| 16 |  | eqid | ⊢ ( ∅  matToPolyMat  𝑅 )  =  ( ∅  matToPolyMat  𝑅 ) | 
						
							| 17 |  | eqid | ⊢ ( 1r ‘ ( ∅  Mat  ( Poly1 ‘ 𝑅 ) ) )  =  ( 1r ‘ ( ∅  Mat  ( Poly1 ‘ 𝑅 ) ) ) | 
						
							| 18 | 1 8 9 10 11 12 13 14 15 16 17 | chpmatval | ⊢ ( ( ∅  ∈  Fin  ∧  𝑅  ∈  Ring  ∧  ∅  ∈  ( Base ‘ ( ∅  Mat  𝑅 ) ) )  →  ( 𝐶 ‘ ∅ )  =  ( ( ∅  maDet  ( Poly1 ‘ 𝑅 ) ) ‘ ( ( ( var1 ‘ 𝑅 ) (  ·𝑠  ‘ ( ∅  Mat  ( Poly1 ‘ 𝑅 ) ) ) ( 1r ‘ ( ∅  Mat  ( Poly1 ‘ 𝑅 ) ) ) ) ( -g ‘ ( ∅  Mat  ( Poly1 ‘ 𝑅 ) ) ) ( ( ∅  matToPolyMat  𝑅 ) ‘ ∅ ) ) ) ) | 
						
							| 19 | 2 3 7 18 | mp3an2i | ⊢ ( 𝑅  ∈  Ring  →  ( 𝐶 ‘ ∅ )  =  ( ( ∅  maDet  ( Poly1 ‘ 𝑅 ) ) ‘ ( ( ( var1 ‘ 𝑅 ) (  ·𝑠  ‘ ( ∅  Mat  ( Poly1 ‘ 𝑅 ) ) ) ( 1r ‘ ( ∅  Mat  ( Poly1 ‘ 𝑅 ) ) ) ) ( -g ‘ ( ∅  Mat  ( Poly1 ‘ 𝑅 ) ) ) ( ( ∅  matToPolyMat  𝑅 ) ‘ ∅ ) ) ) ) | 
						
							| 20 | 10 | ply1ring | ⊢ ( 𝑅  ∈  Ring  →  ( Poly1 ‘ 𝑅 )  ∈  Ring ) | 
						
							| 21 |  | mdet0pr | ⊢ ( ( Poly1 ‘ 𝑅 )  ∈  Ring  →  ( ∅  maDet  ( Poly1 ‘ 𝑅 ) )  =  { 〈 ∅ ,  ( 1r ‘ ( Poly1 ‘ 𝑅 ) ) 〉 } ) | 
						
							| 22 | 21 | fveq1d | ⊢ ( ( Poly1 ‘ 𝑅 )  ∈  Ring  →  ( ( ∅  maDet  ( Poly1 ‘ 𝑅 ) ) ‘ ( ( ( var1 ‘ 𝑅 ) (  ·𝑠  ‘ ( ∅  Mat  ( Poly1 ‘ 𝑅 ) ) ) ( 1r ‘ ( ∅  Mat  ( Poly1 ‘ 𝑅 ) ) ) ) ( -g ‘ ( ∅  Mat  ( Poly1 ‘ 𝑅 ) ) ) ( ( ∅  matToPolyMat  𝑅 ) ‘ ∅ ) ) )  =  ( { 〈 ∅ ,  ( 1r ‘ ( Poly1 ‘ 𝑅 ) ) 〉 } ‘ ( ( ( var1 ‘ 𝑅 ) (  ·𝑠  ‘ ( ∅  Mat  ( Poly1 ‘ 𝑅 ) ) ) ( 1r ‘ ( ∅  Mat  ( Poly1 ‘ 𝑅 ) ) ) ) ( -g ‘ ( ∅  Mat  ( Poly1 ‘ 𝑅 ) ) ) ( ( ∅  matToPolyMat  𝑅 ) ‘ ∅ ) ) ) ) | 
						
							| 23 | 20 22 | syl | ⊢ ( 𝑅  ∈  Ring  →  ( ( ∅  maDet  ( Poly1 ‘ 𝑅 ) ) ‘ ( ( ( var1 ‘ 𝑅 ) (  ·𝑠  ‘ ( ∅  Mat  ( Poly1 ‘ 𝑅 ) ) ) ( 1r ‘ ( ∅  Mat  ( Poly1 ‘ 𝑅 ) ) ) ) ( -g ‘ ( ∅  Mat  ( Poly1 ‘ 𝑅 ) ) ) ( ( ∅  matToPolyMat  𝑅 ) ‘ ∅ ) ) )  =  ( { 〈 ∅ ,  ( 1r ‘ ( Poly1 ‘ 𝑅 ) ) 〉 } ‘ ( ( ( var1 ‘ 𝑅 ) (  ·𝑠  ‘ ( ∅  Mat  ( Poly1 ‘ 𝑅 ) ) ) ( 1r ‘ ( ∅  Mat  ( Poly1 ‘ 𝑅 ) ) ) ) ( -g ‘ ( ∅  Mat  ( Poly1 ‘ 𝑅 ) ) ) ( ( ∅  matToPolyMat  𝑅 ) ‘ ∅ ) ) ) ) | 
						
							| 24 | 11 | mat0dimid | ⊢ ( ( Poly1 ‘ 𝑅 )  ∈  Ring  →  ( 1r ‘ ( ∅  Mat  ( Poly1 ‘ 𝑅 ) ) )  =  ∅ ) | 
						
							| 25 | 20 24 | syl | ⊢ ( 𝑅  ∈  Ring  →  ( 1r ‘ ( ∅  Mat  ( Poly1 ‘ 𝑅 ) ) )  =  ∅ ) | 
						
							| 26 | 25 | oveq2d | ⊢ ( 𝑅  ∈  Ring  →  ( ( var1 ‘ 𝑅 ) (  ·𝑠  ‘ ( ∅  Mat  ( Poly1 ‘ 𝑅 ) ) ) ( 1r ‘ ( ∅  Mat  ( Poly1 ‘ 𝑅 ) ) ) )  =  ( ( var1 ‘ 𝑅 ) (  ·𝑠  ‘ ( ∅  Mat  ( Poly1 ‘ 𝑅 ) ) ) ∅ ) ) | 
						
							| 27 |  | eqid | ⊢ ( Base ‘ ( Poly1 ‘ 𝑅 ) )  =  ( Base ‘ ( Poly1 ‘ 𝑅 ) ) | 
						
							| 28 | 14 10 27 | vr1cl | ⊢ ( 𝑅  ∈  Ring  →  ( var1 ‘ 𝑅 )  ∈  ( Base ‘ ( Poly1 ‘ 𝑅 ) ) ) | 
						
							| 29 | 11 | mat0dimscm | ⊢ ( ( ( Poly1 ‘ 𝑅 )  ∈  Ring  ∧  ( var1 ‘ 𝑅 )  ∈  ( Base ‘ ( Poly1 ‘ 𝑅 ) ) )  →  ( ( var1 ‘ 𝑅 ) (  ·𝑠  ‘ ( ∅  Mat  ( Poly1 ‘ 𝑅 ) ) ) ∅ )  =  ∅ ) | 
						
							| 30 | 20 28 29 | syl2anc | ⊢ ( 𝑅  ∈  Ring  →  ( ( var1 ‘ 𝑅 ) (  ·𝑠  ‘ ( ∅  Mat  ( Poly1 ‘ 𝑅 ) ) ) ∅ )  =  ∅ ) | 
						
							| 31 | 26 30 | eqtrd | ⊢ ( 𝑅  ∈  Ring  →  ( ( var1 ‘ 𝑅 ) (  ·𝑠  ‘ ( ∅  Mat  ( Poly1 ‘ 𝑅 ) ) ) ( 1r ‘ ( ∅  Mat  ( Poly1 ‘ 𝑅 ) ) ) )  =  ∅ ) | 
						
							| 32 |  | d0mat2pmat | ⊢ ( 𝑅  ∈  Ring  →  ( ( ∅  matToPolyMat  𝑅 ) ‘ ∅ )  =  ∅ ) | 
						
							| 33 | 31 32 | oveq12d | ⊢ ( 𝑅  ∈  Ring  →  ( ( ( var1 ‘ 𝑅 ) (  ·𝑠  ‘ ( ∅  Mat  ( Poly1 ‘ 𝑅 ) ) ) ( 1r ‘ ( ∅  Mat  ( Poly1 ‘ 𝑅 ) ) ) ) ( -g ‘ ( ∅  Mat  ( Poly1 ‘ 𝑅 ) ) ) ( ( ∅  matToPolyMat  𝑅 ) ‘ ∅ ) )  =  ( ∅ ( -g ‘ ( ∅  Mat  ( Poly1 ‘ 𝑅 ) ) ) ∅ ) ) | 
						
							| 34 | 11 | matring | ⊢ ( ( ∅  ∈  Fin  ∧  ( Poly1 ‘ 𝑅 )  ∈  Ring )  →  ( ∅  Mat  ( Poly1 ‘ 𝑅 ) )  ∈  Ring ) | 
						
							| 35 | 2 20 34 | sylancr | ⊢ ( 𝑅  ∈  Ring  →  ( ∅  Mat  ( Poly1 ‘ 𝑅 ) )  ∈  Ring ) | 
						
							| 36 |  | ringgrp | ⊢ ( ( ∅  Mat  ( Poly1 ‘ 𝑅 ) )  ∈  Ring  →  ( ∅  Mat  ( Poly1 ‘ 𝑅 ) )  ∈  Grp ) | 
						
							| 37 | 35 36 | syl | ⊢ ( 𝑅  ∈  Ring  →  ( ∅  Mat  ( Poly1 ‘ 𝑅 ) )  ∈  Grp ) | 
						
							| 38 |  | mat0dimbas0 | ⊢ ( ( Poly1 ‘ 𝑅 )  ∈  Ring  →  ( Base ‘ ( ∅  Mat  ( Poly1 ‘ 𝑅 ) ) )  =  { ∅ } ) | 
						
							| 39 | 20 38 | syl | ⊢ ( 𝑅  ∈  Ring  →  ( Base ‘ ( ∅  Mat  ( Poly1 ‘ 𝑅 ) ) )  =  { ∅ } ) | 
						
							| 40 | 5 39 | eleqtrrid | ⊢ ( 𝑅  ∈  Ring  →  ∅  ∈  ( Base ‘ ( ∅  Mat  ( Poly1 ‘ 𝑅 ) ) ) ) | 
						
							| 41 |  | eqid | ⊢ ( Base ‘ ( ∅  Mat  ( Poly1 ‘ 𝑅 ) ) )  =  ( Base ‘ ( ∅  Mat  ( Poly1 ‘ 𝑅 ) ) ) | 
						
							| 42 |  | eqid | ⊢ ( 0g ‘ ( ∅  Mat  ( Poly1 ‘ 𝑅 ) ) )  =  ( 0g ‘ ( ∅  Mat  ( Poly1 ‘ 𝑅 ) ) ) | 
						
							| 43 | 41 42 13 | grpsubid | ⊢ ( ( ( ∅  Mat  ( Poly1 ‘ 𝑅 ) )  ∈  Grp  ∧  ∅  ∈  ( Base ‘ ( ∅  Mat  ( Poly1 ‘ 𝑅 ) ) ) )  →  ( ∅ ( -g ‘ ( ∅  Mat  ( Poly1 ‘ 𝑅 ) ) ) ∅ )  =  ( 0g ‘ ( ∅  Mat  ( Poly1 ‘ 𝑅 ) ) ) ) | 
						
							| 44 | 37 40 43 | syl2anc | ⊢ ( 𝑅  ∈  Ring  →  ( ∅ ( -g ‘ ( ∅  Mat  ( Poly1 ‘ 𝑅 ) ) ) ∅ )  =  ( 0g ‘ ( ∅  Mat  ( Poly1 ‘ 𝑅 ) ) ) ) | 
						
							| 45 | 33 44 | eqtrd | ⊢ ( 𝑅  ∈  Ring  →  ( ( ( var1 ‘ 𝑅 ) (  ·𝑠  ‘ ( ∅  Mat  ( Poly1 ‘ 𝑅 ) ) ) ( 1r ‘ ( ∅  Mat  ( Poly1 ‘ 𝑅 ) ) ) ) ( -g ‘ ( ∅  Mat  ( Poly1 ‘ 𝑅 ) ) ) ( ( ∅  matToPolyMat  𝑅 ) ‘ ∅ ) )  =  ( 0g ‘ ( ∅  Mat  ( Poly1 ‘ 𝑅 ) ) ) ) | 
						
							| 46 | 45 | fveq2d | ⊢ ( 𝑅  ∈  Ring  →  ( { 〈 ∅ ,  ( 1r ‘ ( Poly1 ‘ 𝑅 ) ) 〉 } ‘ ( ( ( var1 ‘ 𝑅 ) (  ·𝑠  ‘ ( ∅  Mat  ( Poly1 ‘ 𝑅 ) ) ) ( 1r ‘ ( ∅  Mat  ( Poly1 ‘ 𝑅 ) ) ) ) ( -g ‘ ( ∅  Mat  ( Poly1 ‘ 𝑅 ) ) ) ( ( ∅  matToPolyMat  𝑅 ) ‘ ∅ ) ) )  =  ( { 〈 ∅ ,  ( 1r ‘ ( Poly1 ‘ 𝑅 ) ) 〉 } ‘ ( 0g ‘ ( ∅  Mat  ( Poly1 ‘ 𝑅 ) ) ) ) ) | 
						
							| 47 | 11 | mat0dim0 | ⊢ ( ( Poly1 ‘ 𝑅 )  ∈  Ring  →  ( 0g ‘ ( ∅  Mat  ( Poly1 ‘ 𝑅 ) ) )  =  ∅ ) | 
						
							| 48 | 20 47 | syl | ⊢ ( 𝑅  ∈  Ring  →  ( 0g ‘ ( ∅  Mat  ( Poly1 ‘ 𝑅 ) ) )  =  ∅ ) | 
						
							| 49 | 48 | fveq2d | ⊢ ( 𝑅  ∈  Ring  →  ( { 〈 ∅ ,  ( 1r ‘ ( Poly1 ‘ 𝑅 ) ) 〉 } ‘ ( 0g ‘ ( ∅  Mat  ( Poly1 ‘ 𝑅 ) ) ) )  =  ( { 〈 ∅ ,  ( 1r ‘ ( Poly1 ‘ 𝑅 ) ) 〉 } ‘ ∅ ) ) | 
						
							| 50 |  | fvex | ⊢ ( 1r ‘ ( Poly1 ‘ 𝑅 ) )  ∈  V | 
						
							| 51 | 4 50 | fvsn | ⊢ ( { 〈 ∅ ,  ( 1r ‘ ( Poly1 ‘ 𝑅 ) ) 〉 } ‘ ∅ )  =  ( 1r ‘ ( Poly1 ‘ 𝑅 ) ) | 
						
							| 52 | 49 51 | eqtrdi | ⊢ ( 𝑅  ∈  Ring  →  ( { 〈 ∅ ,  ( 1r ‘ ( Poly1 ‘ 𝑅 ) ) 〉 } ‘ ( 0g ‘ ( ∅  Mat  ( Poly1 ‘ 𝑅 ) ) ) )  =  ( 1r ‘ ( Poly1 ‘ 𝑅 ) ) ) | 
						
							| 53 | 46 52 | eqtrd | ⊢ ( 𝑅  ∈  Ring  →  ( { 〈 ∅ ,  ( 1r ‘ ( Poly1 ‘ 𝑅 ) ) 〉 } ‘ ( ( ( var1 ‘ 𝑅 ) (  ·𝑠  ‘ ( ∅  Mat  ( Poly1 ‘ 𝑅 ) ) ) ( 1r ‘ ( ∅  Mat  ( Poly1 ‘ 𝑅 ) ) ) ) ( -g ‘ ( ∅  Mat  ( Poly1 ‘ 𝑅 ) ) ) ( ( ∅  matToPolyMat  𝑅 ) ‘ ∅ ) ) )  =  ( 1r ‘ ( Poly1 ‘ 𝑅 ) ) ) | 
						
							| 54 | 23 53 | eqtrd | ⊢ ( 𝑅  ∈  Ring  →  ( ( ∅  maDet  ( Poly1 ‘ 𝑅 ) ) ‘ ( ( ( var1 ‘ 𝑅 ) (  ·𝑠  ‘ ( ∅  Mat  ( Poly1 ‘ 𝑅 ) ) ) ( 1r ‘ ( ∅  Mat  ( Poly1 ‘ 𝑅 ) ) ) ) ( -g ‘ ( ∅  Mat  ( Poly1 ‘ 𝑅 ) ) ) ( ( ∅  matToPolyMat  𝑅 ) ‘ ∅ ) ) )  =  ( 1r ‘ ( Poly1 ‘ 𝑅 ) ) ) | 
						
							| 55 | 19 54 | eqtrd | ⊢ ( 𝑅  ∈  Ring  →  ( 𝐶 ‘ ∅ )  =  ( 1r ‘ ( Poly1 ‘ 𝑅 ) ) ) |