Determinant of families of vectors #
THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4.
This file defines the determinant of an endomorphism, and of a family of vectors
with respect to some basis. For the determinant of a matrix, see the file
linear_algebra.matrix.determinant
.
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.
basis.det
: the determinant of a family of vectors with respect to a basis, as a multilinear maplinear_map.det
: the determinant of an endomorphismf : End R M
as a multiplicative homomorphism (ifM
does not have a finiteR
-basis, the result is1
instead)linear_equiv.det
: the determinant of an isomorphismf : M ≃ₗ[R] M
as a multiplicative homomorphism (ifM
does not have a finiteR
-basis, the result is1
instead)
Tags #
basis, det, determinant
If R^m
and R^n
are linearly equivalent, then m
and n
are also equivalent.
Equations
- equiv_of_pi_lequiv_pi e = (basis.of_equiv_fun e.symm).index_equiv (pi.basis_fun R n)
If M
and M'
are each other's inverse matrices, they are square matrices up to
equivalence of types.
Equations
- matrix.index_equiv_of_inv hMM' hM'M = equiv_of_pi_lequiv_pi (matrix.to_lin'_of_inv hMM' hM'M)
If there exists a two-sided inverse M'
for M
(indexed differently),
then det (N ⬝ M) = det (M ⬝ N)
.
If M'
is a two-sided inverse for M
(indexed differently), det (M ⬝ N ⬝ M') = det N
.
See matrix.det_conj
and matrix.det_conj'
for the case when M' = M⁻¹
or vice versa.
Determinant of a linear map #
The determinant of linear_map.to_matrix
does not depend on the choice of basis.
The determinant of an endomorphism given a basis.
See linear_map.det
for a version that populates the basis non-computably.
Although the trunc (basis ι A M)
parameter makes it slightly more convenient to switch bases,
there is no good way to generalize over universe parameters, so we can't fully state in det_aux
's
type that it does not depend on the choice of basis. Instead you can use the det_aux_def'
lemma,
or avoid mentioning a basis at all using linear_map.det
.
Equations
- linear_map.det_aux = trunc.lift (λ (b : basis ι A M), matrix.det_monoid_hom.comp ↑(linear_map.to_matrix_alg_equiv b)) linear_map.det_aux._proof_1
Unfold lemma for det_aux
.
See also det_aux_def'
which allows you to vary the basis.
The determinant of an endomorphism independent of basis.
If there is no finite basis on M
, the result is 1
instead.
To show P f.det
it suffices to consider P (to_matrix _ _ f).det
and P 1
.
Multiplying a map by a scalar c
multiplies its determinant by c ^ dim M
.
In a finite-dimensional vector space, the zero map has determinant 1
in dimension 0
,
and 0
otherwise. We give a formula that also works in infinite dimension, where we define
the determinant to be 1
.
Conjugating a linear map by a linear equiv does not change its determinant.
If a linear map is invertible, so is its determinant.
If a linear map has determinant different from 1
, then the space is finite-dimensional.
If the determinant of a map vanishes, then the map is not onto.
If the determinant of a map vanishes, then the map is not injective.
On a linear_equiv
, the domain of linear_map.det
can be promoted to Rˣ
.
Conjugating a linear equiv by a linear equiv does not change its determinant.
The determinants of a linear_equiv
and its inverse multiply to 1.
The determinants of a linear_equiv
and its inverse multiply to 1.
Specialization of linear_equiv.is_unit_det
The determinant of f.symm
is the inverse of that of f
when f
is a linear equiv.
Builds a linear equivalence from a linear map whose determinant in some bases is a unit.
Builds a linear equivalence from a linear map on a finite-dimensional vector space whose determinant is nonzero.
Equations
- f.equiv_of_det_ne_zero hf = have this : is_unit (⇑(linear_map.to_matrix (finite_dimensional.fin_basis 𝕜 M) (finite_dimensional.fin_basis 𝕜 M)) f).det, from _, linear_equiv.of_is_unit_det this
The determinant of a family of vectors with respect to some basis, as an alternating multilinear map.
basis.det
is not the zero map.
Any alternating map to R
where ι
has the cardinality of a basis equals the determinant
map with respect to that basis, multiplied by the value of that alternating map on that basis.
If we fix a background basis e
, then for any other basis v
, we can characterise the
coordinates provided by v
in terms of determinants relative to e
.
If a basis is multiplied columnwise by scalars w : ι → Rˣ
, then the determinant with respect
to this basis is multiplied by the product of the inverse of these scalars.
The determinant of a basis constructed by units_smul
is the product of the given units.
The determinant of a basis constructed by is_unit_smul
is the product of the given units.