Documentation

Mathlib.Algebra.Module.Submodule.Invariant

The lattice of invariant submodules #

In this file we defined the type Module.End.invtSubmodule, associated to a linear endomorphism of a module. Its utilty stems primarily from those occasions on which we wish to take advantage of the lattice structure of invariant submodules.

See also Mathlib.Algebra.Polynomial.Module.AEval.

def Module.End.invtSubmodule {R : Type u_1} {M : Type u_2} [Semiring R] [AddCommMonoid M] [Module R M] (f : Module.End R M) :

Given an endomorphism, f of some module, this is the sublattice of all f-invariant submodules.

Equations
Instances For
    theorem Module.End.mem_invtSubmodule {R : Type u_1} {M : Type u_2} [Semiring R] [AddCommMonoid M] [Module R M] (f : Module.End R M) {p : Submodule R M} :
    p f.invtSubmodule p Submodule.comap f p
    theorem Module.End.invtSubmodule.inf_mem {R : Type u_1} {M : Type u_2} [Semiring R] [AddCommMonoid M] [Module R M] {f : Module.End R M} {p q : Submodule R M} (hp : p f.invtSubmodule) (hq : q f.invtSubmodule) :
    p q f.invtSubmodule
    theorem Module.End.invtSubmodule.sup_mem {R : Type u_1} {M : Type u_2} [Semiring R] [AddCommMonoid M] [Module R M] {f : Module.End R M} {p q : Submodule R M} (hp : p f.invtSubmodule) (hq : q f.invtSubmodule) :
    p q f.invtSubmodule
    @[simp]
    theorem Module.End.invtSubmodule.top_mem {R : Type u_1} {M : Type u_2} [Semiring R] [AddCommMonoid M] [Module R M] (f : Module.End R M) :
    f.invtSubmodule
    @[simp]
    theorem Module.End.invtSubmodule.bot_mem {R : Type u_1} {M : Type u_2} [Semiring R] [AddCommMonoid M] [Module R M] (f : Module.End R M) :
    f.invtSubmodule
    @[simp]
    theorem Module.End.invtSubmodule.id {R : Type u_1} {M : Type u_2} [Semiring R] [AddCommMonoid M] [Module R M] :
    theorem Module.End.invtSubmodule.mk_eq_bot_iff {R : Type u_1} {M : Type u_2} [Semiring R] [AddCommMonoid M] [Module R M] (f : Module.End R M) {p : Submodule R M} (hp : p f.invtSubmodule) :
    p, hp = p =
    theorem Module.End.invtSubmodule.mk_eq_top_iff {R : Type u_1} {M : Type u_2} [Semiring R] [AddCommMonoid M] [Module R M] (f : Module.End R M) {p : Submodule R M} (hp : p f.invtSubmodule) :
    p, hp = p =
    @[simp]
    theorem Module.End.invtSubmodule.disjoint_mk_iff {R : Type u_1} {M : Type u_2} [Semiring R] [AddCommMonoid M] [Module R M] (f : Module.End R M) {p q : Submodule R M} (hp : p f.invtSubmodule) (hq : q f.invtSubmodule) :
    Disjoint p, hp q, hq Disjoint p q
    theorem Module.End.invtSubmodule.disjoint_iff {R : Type u_1} {M : Type u_2} [Semiring R] [AddCommMonoid M] [Module R M] (f : Module.End R M) {p q : f.invtSubmodule} :
    Disjoint p q Disjoint p q
    @[simp]
    theorem Module.End.invtSubmodule.codisjoint_mk_iff {R : Type u_1} {M : Type u_2} [Semiring R] [AddCommMonoid M] [Module R M] (f : Module.End R M) {p q : Submodule R M} (hp : p f.invtSubmodule) (hq : q f.invtSubmodule) :
    Codisjoint p, hp q, hq Codisjoint p q
    theorem Module.End.invtSubmodule.codisjoint_iff {R : Type u_1} {M : Type u_2} [Semiring R] [AddCommMonoid M] [Module R M] (f : Module.End R M) {p q : f.invtSubmodule} :
    Codisjoint p q Codisjoint p q
    @[simp]
    theorem Module.End.invtSubmodule.isCompl_mk_iff {R : Type u_1} {M : Type u_2} [Semiring R] [AddCommMonoid M] [Module R M] (f : Module.End R M) {p q : Submodule R M} (hp : p f.invtSubmodule) (hq : q f.invtSubmodule) :
    IsCompl p, hp q, hq IsCompl p q
    theorem Module.End.invtSubmodule.isCompl_iff {R : Type u_1} {M : Type u_2} [Semiring R] [AddCommMonoid M] [Module R M] (f : Module.End R M) {p q : f.invtSubmodule} :
    IsCompl p q IsCompl p q
    theorem Module.End.invtSubmodule.map_subtype_mem_of_mem_invtSubmodule {R : Type u_1} {M : Type u_2} [Semiring R] [AddCommMonoid M] [Module R M] (f : Module.End R M) {p : Submodule R M} (hp : p f.invtSubmodule) {q : Submodule R p} (hq : q Module.End.invtSubmodule (LinearMap.restrict f hp)) :
    Submodule.map p.subtype q f.invtSubmodule