The lattice of invariant submodules #
In this file we defined the type Module.End.invtSubmodule, associated to a linear endomorphism of
a module. Its utility stems primarily from those occasions on which we wish to take advantage of the
lattice structure of invariant submodules.
def Module.End.invtSubmodule {R : Type u_1} {M : Type u_2} [Semiring R] [AddCommMonoid M] [Module R M] (f : End R M) :
Sublattice (Submodule 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 : End R M) {p : Submodule R M} :
theorem Module.End.mem_invtSubmodule_iff_map_le {R : Type u_1} {M : Type u_2} [Semiring R] [AddCommMonoid M] [Module R M] (f : End R M) {p : Submodule R M} :
p is f invariant if and only if p.map f ≤ p.
theorem Module.End.mem_invtSubmodule_iff_mapsTo {R : Type u_1} {M : Type u_2} [Semiring R] [AddCommMonoid M] [Module R M] (f : End R M) {p : Submodule R M} :
p is f invariant if and only if Set.MapsTo f p p.
theorem Set.Mapsto.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} :
MapsTo ⇑f ↑p ↑p → p ∈ f.invtSubmodule
Alias of the reverse direction of Module.End.mem_invtSubmodule_iff_mapsTo.
p is f invariant if and only if Set.MapsTo f p p.
theorem Module.End.mem_invtSubmodule_iff_forall_mem_of_mem {R : Type u_1} {M : Type u_2} [Semiring R] [AddCommMonoid M] [Module R M] (f : End R M) {p : Submodule R M} :
theorem Module.End.mem_invtSubmodule_symm_iff_le_map {R : Type u_1} {M : Type u_2} [Semiring R] [AddCommMonoid M] [Module R M] {f : M ≃ₗ[R] M} {p : Submodule R M} :
p is f.symm invariant if and only if p ≤ p.map f.
theorem Module.End.invtSubmodule_inf_invtSubmodule_le_invtSubmodule_add {R : Type u_1} {M : Type u_2} [Semiring R] [AddCommMonoid M] [Module R M] (f g : End R M) :
theorem Module.End.invtSubmodule_le_invtSubmodule_smul {M : Type u_2} [AddCommMonoid M] {R : Type u_3} {S : Type u_4} [Semiring R] [Semiring S] [Module R M] [Module S M] [DistribSMul S R] [SMulCommClass R S M] [IsScalarTower S R M] (f : End R M) (c : S) :
@[simp]
theorem Module.End.invtSubmodule_smul {M : Type u_2} [AddCommMonoid M] {R : Type u_3} {S : Type u_4} [Semiring R] [Semiring S] [Module R M] [Module S M] [DistribSMul S R] [SMulCommClass R S M] [IsScalarTower S R M] (f : End R M) (c : Sˣ) :
theorem Module.End.invtSubmodule.inf_mem {R : Type u_1} {M : Type u_2} [Semiring R] [AddCommMonoid M] [Module R M] {f : End R M} {p q : Submodule R M} (hp : p ∈ f.invtSubmodule) (hq : 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 : End R M} {p q : Submodule R M} (hp : p ∈ f.invtSubmodule) (hq : 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 : End R M) :
@[simp]
theorem Module.End.invtSubmodule.bot_mem {R : Type u_1} {M : Type u_2} [Semiring R] [AddCommMonoid M] [Module R M] (f : End R M) :
@[instance_reducible]
instance Module.End.invtSubmodule.instBoundedOrderSubtypeSubmoduleMemSublattice {R : Type u_1} {M : Type u_2} [Semiring R] [AddCommMonoid M] [Module R M] (f : End R M) :
@[simp]
theorem Module.End.invtSubmodule.zero {R : Type u_1} {M : Type u_2} [Semiring R] [AddCommMonoid M] [Module R M] :
@[simp]
theorem Module.End.invtSubmodule.id {R : Type u_1} {M : Type u_2} [Semiring R] [AddCommMonoid M] [Module R M] :
@[simp]
theorem Module.End.invtSubmodule.one {R : Type u_1} {M : Type u_2} [Semiring R] [AddCommMonoid M] [Module R M] :
@[simp]
theorem Module.End.invtSubmodule.disjoint_mk_iff {R : Type u_1} {M : Type u_2} [Semiring R] [AddCommMonoid M] [Module R M] (f : End R M) {p q : Submodule R M} (hp : p ∈ f.invtSubmodule) (hq : q ∈ f.invtSubmodule) :
theorem Module.End.invtSubmodule.disjoint_iff {R : Type u_1} {M : Type u_2} [Semiring R] [AddCommMonoid M] [Module R M] (f : End R M) {p q : ↥f.invtSubmodule} :
@[simp]
theorem Module.End.invtSubmodule.codisjoint_mk_iff {R : Type u_1} {M : Type u_2} [Semiring R] [AddCommMonoid M] [Module R M] (f : End R M) {p q : Submodule R M} (hp : p ∈ f.invtSubmodule) (hq : q ∈ f.invtSubmodule) :
theorem Module.End.invtSubmodule.codisjoint_iff {R : Type u_1} {M : Type u_2} [Semiring R] [AddCommMonoid M] [Module R M] (f : End R M) {p q : ↥f.invtSubmodule} :
@[simp]
theorem Module.End.invtSubmodule.isCompl_mk_iff {R : Type u_1} {M : Type u_2} [Semiring R] [AddCommMonoid M] [Module R M] (f : End R M) {p q : Submodule R M} (hp : p ∈ f.invtSubmodule) (hq : q ∈ f.invtSubmodule) :
theorem Module.End.invtSubmodule.isCompl_iff {R : Type u_1} {M : Type u_2} [Semiring R] [AddCommMonoid M] [Module R M] (f : End R M) {p q : ↥f.invtSubmodule} :
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 : End R M) {p : Submodule R M} (hp : p ∈ f.invtSubmodule) {q : Submodule R ↥p} (hq : q ∈ invtSubmodule (LinearMap.restrict f hp)) :
theorem Module.End.invtSubmodule.comp {R : Type u_1} {M : Type u_2} [Semiring R] [AddCommMonoid M] [Module R M] (f : End R M) {p : Submodule R M} {g : End R M} (hf : p ∈ f.invtSubmodule) (hg : p ∈ g.invtSubmodule) :
@[simp]
theorem LinearEquiv.map_mem_invtSubmodule_conj_iff {R : Type u_3} {M : Type u_4} {N : Type u_5} [CommSemiring R] [AddCommMonoid M] [Module R M] [AddCommMonoid N] [Module R N] {f : Module.End R M} {e : M ≃ₗ[R] N} {p : Submodule R M} :
theorem LinearEquiv.map_mem_invtSubmodule_iff {R : Type u_3} {M : Type u_4} {N : Type u_5} [CommSemiring R] [AddCommMonoid M] [Module R M] [AddCommMonoid N] [Module R N] {f : Module.End R N} {e : M ≃ₗ[R] N} {p : Submodule R M} :
theorem Module.End.span_orbit_mem_invtSubmodule (R : Type u_1) {M : Type u_2} [Semiring R] [AddCommMonoid M] [Module R M] {G : Type u_3} [Monoid G] [DistribMulAction G M] [SMulCommClass G R M] (x : M) (g : G) :