Linear maps and matrices #
This file defines the maps to send matrices to a linear map, and to send linear maps between modules with a finite bases to matrices. This defines a linear equivalence between linear maps between finite-dimensional vector spaces and matrices indexed by the respective bases.
Main definitions #
In the list below, and in all this file, R
is a commutative ring (semiring
is sometimes enough), M
and its variations are R
-modules, ι
, κ
, n
and m
are finite
types used for indexing.
linear_map.to_matrix
: given basesv₁ : ι → M₁
andv₂ : κ → M₂
, theR
-linear equivalence fromM₁ →ₗ[R] M₂
tomatrix κ ι R
matrix.to_lin
: the inverse oflinear_map.to_matrix
linear_map.to_matrix'
: theR
-linear equivalence from(m → R) →ₗ[R] (n → R)
tomatrix m n R
(with the standard basis onm → R
andn → R
)matrix.to_lin'
: the inverse oflinear_map.to_matrix'
alg_equiv_matrix
: given a basis indexed byn
, theR
-algebra equivalence betweenR
-endomorphisms ofM
andmatrix n n R
Tags #
linear_map, matrix, linear_equiv, diagonal, det, trace
Equations
- matrix.fintype R = _.mpr pi.fintype
matrix.mul_vec M
is a linear map.
Linear maps (n → R) →ₗ[R] (m → R)
are linearly equivalent to matrix m n R
.
Equations
- linear_map.to_matrix' = {to_fun := λ (f : (n → R) →ₗ[R] m → R) (i : m) (j : n), ⇑f (⇑(linear_map.std_basis R (λ (_x : n), R) j) 1) i, map_add' := _, map_smul' := _, inv_fun := matrix.mul_vec_lin _inst_2, left_inv := _, right_inv := _}
A matrix m n R
is linearly equivalent to a linear map (n → R) →ₗ[R] (m → R)
.
Equations
Shortcut lemma for matrix.to_lin'_mul
and linear_map.comp_apply
If M
and M'
are each other's inverse matrices, they provide an equivalence between m → A
and n → A
corresponding to M.mul_vec
and M'.mul_vec
.
Equations
- matrix.to_lin'_of_inv hMM' hM'M = {to_fun := ⇑(⇑matrix.to_lin' M'), map_add' := _, map_smul' := _, inv_fun := ⇑(⇑matrix.to_lin' M), left_inv := _, right_inv := _}
Linear maps (n → R) →ₗ[R] (n → R)
are algebra equivalent to matrix n n R
.
Equations
- linear_map.to_matrix_alg_equiv' = alg_equiv.of_linear_equiv linear_map.to_matrix' linear_map.to_matrix_alg_equiv'._proof_1 linear_map.to_matrix_alg_equiv'._proof_2
A matrix n n R
is algebra equivalent to a linear map (n → R) →ₗ[R] (n → R)
.
Given bases of two modules M₁
and M₂
over a commutative ring R
, we get a linear
equivalence between linear maps M₁ →ₗ M₂
and matrices over R
indexed by the bases.
Equations
- linear_map.to_matrix v₁ v₂ = (v₁.equiv_fun.arrow_congr v₂.equiv_fun).trans linear_map.to_matrix'
linear_map.to_matrix'
is a particular case of linear_map.to_matrix
, for the standard basis
pi.basis_fun R n
.
Given bases of two modules M₁
and M₂
over a commutative ring R
, we get a linear
equivalence between matrices over R
indexed by the bases and linear maps M₁ →ₗ M₂
.
Equations
- matrix.to_lin v₁ v₂ = (linear_map.to_matrix v₁ v₂).symm
matrix.to_lin'
is a particular case of matrix.to_lin
, for the standard basis
pi.basis_fun R n
.
This will be a special case of linear_map.to_matrix_id_eq_basis_to_matrix
.
Shortcut lemma for matrix.to_lin_mul
and linear_map.comp_apply
.
If M
and M
are each other's inverse matrices, matrix.to_lin M
and matrix.to_lin M'
form a linear equivalence.
Equations
- matrix.to_lin_of_inv v₁ v₂ hMM' hM'M = {to_fun := ⇑(⇑(matrix.to_lin v₁ v₂) M), map_add' := _, map_smul' := _, inv_fun := ⇑(⇑(matrix.to_lin v₂ v₁) M'), left_inv := _, right_inv := _}
Given a basis of a module M₁
over a commutative ring R
, we get an algebra
equivalence between linear maps M₁ →ₗ M₁
and square matrices over R
indexed by the basis.
Equations
Given a basis of a module M₁
over a commutative ring R
, we get an algebra
equivalence between square matrices over R
indexed by the basis and linear maps M₁ →ₗ M₁
.
Equations
left_mul_matrix b x
is the matrix corresponding to the linear map λ y, x * y
.
left_mul_matrix_eq_repr_mul
gives a formula for the entries of left_mul_matrix
.
This definition is useful for doing (more) explicit computations with algebra.lmul
,
such as the trace form or norm map for algebras.
Equations
- algebra.left_mul_matrix b = {to_fun := λ (x : S), ⇑(linear_map.to_matrix b b) (⇑(algebra.lmul R S) x), map_one' := _, map_mul' := _, map_zero' := _, map_add' := _, commutes' := _}
The dimension of the space of linear transformations is the product of the dimensions of the domain and codomain.
The natural equivalence between linear endomorphisms of finite free modules and square matrices is compatible with the algebra structures.
Equations
- alg_equiv_matrix' = {to_fun := linear_map.to_matrix'.to_fun, inv_fun := linear_map.to_matrix'.inv_fun, left_inv := _, right_inv := _, map_mul' := _, map_add' := _, commutes' := _}
A linear equivalence of two modules induces an equivalence of algebras of their endomorphisms.
A basis of a module induces an equivalence of algebras from the endomorphisms of the module to square matrices.