# mathlib3documentation

linear_algebra.matrix.mv_polynomial

# Matrices of multivariate polynomials #

THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4.

In this file, we prove results about matrices over an mv_polynomial ring. In particular, we provide matrix.mv_polynomial_X which associates every entry of a matrix with a unique variable.

## Tags #

matrix determinant, multivariate polynomial

noncomputable def matrix.mv_polynomial_X (m : Type u_1) (n : Type u_2) (R : Type u_3)  :
n (mv_polynomial (m × n) R)

The matrix with variable X (i,j) at location (i,j).

Equations
@[simp]
theorem matrix.mv_polynomial_X_apply (m : Type u_1) (n : Type u_2) (R : Type u_3) (i : m) (j : n) :
i j = mv_polynomial.X (i, j)
theorem matrix.mv_polynomial_X_map_eval₂ {m : Type u_1} {n : Type u_2} {R : Type u_3} {S : Type u_4} (f : R →+* S) (A : n S) :
R).map (λ (p : m × n), A p.fst p.snd)) = A

Any matrix A can be expressed as the evaluation of matrix.mv_polynomial_X.

This is of particular use when mv_polynomial (m × n) R is an integral domain but S is not, as if the mv_polynomial.eval₂ can be pulled to the outside of a goal, it can be solved in under cancellative assumptions.

theorem matrix.mv_polynomial_X_map_matrix_eval {m : Type u_1} {R : Type u_3} [fintype m] [decidable_eq m] (A : m R) :
((mv_polynomial.eval (λ (p : m × m), A p.fst p.snd)).map_matrix) R) = A

A variant of matrix.mv_polynomial_X_map_eval₂ with a bundled ring_hom on the LHS.

theorem matrix.mv_polynomial_X_map_matrix_aeval {m : Type u_1} (R : Type u_3) {S : Type u_4} [fintype m] [decidable_eq m] [ S] (A : m S) :
((mv_polynomial.aeval (λ (p : m × m), A p.fst p.snd)).map_matrix) R) = A

A variant of matrix.mv_polynomial_X_map_eval₂ with a bundled alg_hom on the LHS.

theorem matrix.det_mv_polynomial_X_ne_zero (m : Type u_1) (R : Type u_3) [decidable_eq m] [fintype m] [comm_ring R] [nontrivial R] :
R).det 0

In a nontrivial ring, matrix.mv_polynomial_X m m R has non-zero determinant.