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 ℤ
.
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.