# 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 FiniteDimensional.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.

noncomputable def FiniteDimensional.finrank (R : Type u_1) (M : Type u_2) [] [] [Module R M] :

The rank of a module as a natural number.

Defined by convention to be 0 if the space has infinite rank.

For a vector space M over a field R, this is the same as the finite dimension of M over R.

Equations
• = Cardinal.toNat ()
Instances For
theorem FiniteDimensional.finrank_eq_of_rank_eq {R : Type u} {M : Type v} [Ring R] [] [Module R M] {n : } (h : = n) :
theorem FiniteDimensional.rank_eq_ofNat_iff_finrank_eq_ofNat {R : Type u} {M : Type v} [Ring R] [] [Module R M] (n : ) [n.AtLeastTwo] :
=

This is like rank_eq_one_iff_finrank_eq_one but works for 2, 3, 4, ...

theorem FiniteDimensional.finrank_le_of_rank_le {R : Type u} {M : Type v} [Ring R] [] [Module R M] {n : } (h : n) :
theorem FiniteDimensional.finrank_lt_of_rank_lt {R : Type u} {M : Type v} [Ring R] [] [Module R M] {n : } (h : < n) :
theorem FiniteDimensional.lt_rank_of_lt_finrank {R : Type u} {M : Type v} [Ring R] [] [Module R M] {n : } (h : ) :
n <
theorem FiniteDimensional.one_lt_rank_of_one_lt_finrank {R : Type u} {M : Type v} [Ring R] [] [Module R M] (h : ) :
1 <
theorem FiniteDimensional.finrank_le_finrank_of_rank_le_rank {R : Type u} {M : Type v} {N : Type w} [Ring R] [] [Module R M] [] [Module R N] (h : ) (h' : ) :
theorem LinearEquiv.finrank_eq {R : Type u_1} {M : Type u_2} {M₂ : Type u_3} [Ring R] [] [] [Module R M] [Module R M₂] (f : M ≃ₗ[R] M₂) :

The dimension of a finite dimensional space is preserved under linear equivalence.

theorem LinearEquiv.finrank_map_eq {R : Type u_1} {M : Type u_2} {M₂ : Type u_3} [Ring R] [] [] [Module R M] [Module R M₂] (f : M ≃ₗ[R] M₂) (p : ) :

Pushforwards of finite-dimensional submodules along a LinearEquiv have the same finrank.

theorem LinearMap.finrank_range_of_inj {R : Type u} {M : Type v} {N : Type w} [Ring R] [] [Module R M] [] [Module R N] {f : M →ₗ[R] N} (hf : ) :

The dimensions of the domain and range of an injective linear map are equal.

@[simp]
theorem Submodule.finrank_map_subtype_eq {R : Type u} {M : Type v} [Ring R] [] [Module R M] (p : ) (q : Submodule R p) :
@[simp]
theorem finrank_top (R : Type u) (M : Type v) [Ring R] [] [Module R M] :