Documentation

Mathlib.LinearAlgebra.FreeModule.Finite.Rank

Rank of finite free modules #

This is a basic API for the rank of finite free modules.

The rank of a finite module is finite.

@[simp]

If M is finite, finrank M = rank M.

The finrank of a free module M over R is the cardinality of ChooseBasisIndex R M.

@[simp]

The finrank of (ι →₀ R) is Fintype.card ι.

The finrank of (ι → R) is Fintype.card ι.

@[simp]
theorem FiniteDimensional.finrank_directSum (R : Type u) [Ring R] [StrongRankCondition R] {ι : Type v} [Fintype ι] (M : ιType w) [(i : ι) → AddCommGroup (M i)] [(i : ι) → Module R (M i)] [∀ (i : ι), Module.Free R (M i)] [∀ (i : ι), Module.Finite R (M i)] :
FiniteDimensional.finrank R (⨁ (i : ι), M i) = Finset.sum Finset.univ fun i => FiniteDimensional.finrank R (M i)

The finrank of the direct sum is the sum of the finranks.

@[simp]

The finrank of M × N is (finrank R M) + (finrank R N).

theorem FiniteDimensional.finrank_pi_fintype (R : Type u) [Ring R] [StrongRankCondition R] {ι : Type v} [Fintype ι] {M : ιType w} [(i : ι) → AddCommGroup (M i)] [(i : ι) → Module R (M i)] [∀ (i : ι), Module.Free R (M i)] [∀ (i : ι), Module.Finite R (M i)] :
FiniteDimensional.finrank R ((i : ι) → M i) = Finset.sum Finset.univ fun i => FiniteDimensional.finrank R (M i)

The finrank of a finite product is the sum of the finranks.

If m and n are Fintype, the finrank of m × n matrices is (Fintype.card m) * (Fintype.card n).

Two finite and free modules are isomorphic if they have the same (finite) rank.

Two finite and free modules are isomorphic if and only if they have the same (finite) rank.

noncomputable def LinearEquiv.ofFinrankEq {R : Type u} (M : Type v) (N : Type w) [Ring R] [StrongRankCondition R] [AddCommGroup M] [Module R M] [Module.Free R M] [Module.Finite R M] [AddCommGroup N] [Module R N] [Module.Free R N] [Module.Finite R N] (cond : FiniteDimensional.finrank R M = FiniteDimensional.finrank R N) :

Two finite and free modules are isomorphic if they have the same (finite) rank.

Equations
Instances For
    @[simp]

    The finrank of M ⊗[R] N is (finrank R M) * (finrank R N).

    The dimension of a submodule is bounded by the dimension of the ambient space.

    The dimension of a quotient is bounded by the dimension of the ambient space.

    theorem Submodule.finrank_map_le {R : Type u} {M : Type v} {N : Type w} [Ring R] [StrongRankCondition R] [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] (f : M →ₗ[R] N) (p : Submodule R M) [Module.Finite R { x // x p }] :

    Pushforwards of finite submodules have a smaller finrank.

    theorem Submodule.finrank_le_finrank_of_le {R : Type u} {M : Type v} [Ring R] [StrongRankCondition R] [AddCommGroup M] [Module R M] {s : Submodule R M} {t : Submodule R M} [Module.Finite R { x // x t }] (hst : s t) :