Finite dimension of vector spaces #
Definition of the rank of a module, or dimension of a vector space, as a natural number.
Main definitions #
Defined is Module.finrank, the dimension of a finite-dimensional space, returning a
Nat, as opposed to Module.rank, which returns a Cardinal. When the space has infinite
dimension, its finrank is by convention set to 0.
The definition of finrank does not assume a FiniteDimensional instance, but lemmas might.
Import LinearAlgebra.FiniteDimensional to get access to these additional lemmas.
Formulas for the dimension are given for linear equivs, in LinearEquiv.finrank_eq.
Implementation notes #
Most results are deduced from the corresponding results for the general dimension (as a cardinal),
in Dimension.lean. Not all results have been ported yet.
You should not assume that there has been any effort to state lemmas as generally as possible.
The rank of a module as a natural number.
For a finite-dimensional vector space V over a field k, Module.finrank k V is equal to
the dimension of V over k.
For a general module M over a ring R, Module.finrank R M is defined to be the supremum of the
cardinalities of the R-linearly independent subsets of M, if this supremum is finite. It is
defined by convention to be 0 if this supremum is infinite. See Module.rank for a
cardinal-valued version where infinite rank modules have rank an infinite cardinal.
Note that if R is not a field then there can exist modules M with ¬(Module.Finite R M) but
finrank R M ≠ 0. For example ℚ has finrank equal to 1 over ℤ, because the nonempty
ℤ-linearly independent subsets of ℚ are precisely the nonzero singletons.
Equations
- Module.finrank R M = Cardinal.toNat (Module.rank R M)
Instances For
This is like rank_eq_one_iff_finrank_eq_one but works for 2, 3, 4, ...
The dimension of a finite-dimensional space is preserved under linear equivalence.
Pushforwards of finite-dimensional submodules along a LinearEquiv have the same finrank.
The dimensions of the domain and range of an injective linear map are equal.
If S₀ / R₀ and S₁ / R₁ are algebras, i : R₀ ≃+* R₁ and j : S₀ ≃+* S₁ are
ring isomorphisms, such that R₀ → R₁ → S₁ and R₀ → S₀ → S₁ commute,
then the finrank of S₀ / R₀ is equal to the finrank of S₁ / R₁.