Algebra isomorphism between matrices of polynomials and polynomials of matrices #
Given [CommRing R] [Ring A] [Algebra R A]
we show A[X] ≃ₐ[R] (A ⊗[R] R[X])
.
Combining this with the isomorphism Matrix n n A ≃ₐ[R] (A ⊗[R] Matrix n n R)
proved earlier
in RingTheory.MatrixAlgebra
, we obtain the algebra isomorphism
def matPolyEquiv :
Matrix n n R[X] ≃ₐ[R] (Matrix n n R)[X]
which is characterized by
coeff (matPolyEquiv m) k i j = coeff (m i j) k
We will use this algebra isomorphism to prove the Cayley-Hamilton theorem.
(Implementation detail).
The function underlying A ⊗[R] R[X] →ₐ[R] A[X]
,
as a bilinear function of two arguments.
Equations
- PolyEquivTensor.toFunBilinear R A = LinearMap.toSpanSingleton A (Polynomial R →ₗ[R] Polynomial A) (Polynomial.aeval Polynomial.X).toLinearMap
(Implementation detail).
The function underlying A ⊗[R] R[X] →ₐ[R] A[X]
,
as a linear map.
Equations
(Implementation detail).
The algebra homomorphism A ⊗[R] R[X] →ₐ[R] A[X]
.
(Implementation detail.)
The bare function A[X] → A ⊗[R] R[X]
.
(We don't need to show that it's an algebra map, thankfully --- just that it's an inverse.)
Equations
- PolyEquivTensor.invFun R A p = Polynomial.eval₂ (↑Algebra.TensorProduct.includeLeft) (1 ⊗ₜ[R] Polynomial.X) p
(Implementation detail)
The equivalence, ignoring the algebra structure, (A ⊗[R] R[X]) ≃ A[X]
.
Equations
- PolyEquivTensor.equiv R A = { toFun := ⇑(PolyEquivTensor.toFunAlgHom R A), invFun := PolyEquivTensor.invFun R A, left_inv := ⋯, right_inv := ⋯ }
The R
-algebra isomorphism A[X] ≃ₐ[R] (A ⊗[R] R[X])
.
Equations
- One or more equations did not get rendered due to their size.
The algebra isomorphism stating "matrices of polynomials are the same as polynomials of matrices".
(You probably shouldn't attempt to use this underlying definition ---
it's an algebra equivalence, and characterised extensionally by the lemma
matPolyEquiv_coeff_apply
below.)
Equations
- matPolyEquiv = ((matrixEquivTensor R (Polynomial R) n).trans (Algebra.TensorProduct.comm R (Polynomial R) (Matrix n n R))).trans (polyEquivTensor R (Matrix n n R)).symm