Joins of subcomodules #
This file adds suprema to the lightweight Subcomodule structure. The supremum of a family
of subcomodules has underlying submodule the supremum of the underlying submodules; the
coaction is stable because each summand lies in the inverse image under ρ of the tensor
product of the larger submodule with the coalgebra. The universal property of the submodule
supremum then gives the same containment for the join.
Main declarations #
Subcomodule.instCompleteSemilatticeSup: arbitrary suprema of subcomodules.Subcomodule.iSup_toSubmodule,Subcomodule.mem_iSup,Subcomodule.mem_sSup: characteristic API for arbitrary joins.Subcomodule.coe_iSup_of_directed,Subcomodule.mem_iSup_of_directed: a nonempty directed join has carrier equal to the union of the carriers.Subcomodule.sup_toSubmodule,Subcomodule.mem_sup: characteristic API for binary joins.Subcomodule.iSup_finite,Subcomodule.sup_finite,Subcomodule.finset_sup_finite: finite generation is preserved by finite joins.Subcomodule.map_sup,Subcomodule.map_iSup: images preserve joins.
References #
The lattice construction is adapted from TauCeti.Algebra.Coalgebra.Subcoalgebra.Lattice,
and the image-join lemmas follow the corresponding map API in
TauCeti.Algebra.Coalgebra.Subcoalgebra.Map.
The join of two subcomodules has underlying submodule the join of the underlying submodules.
Equations
- TauCeti.Subcomodule.instMax = { max := fun (N P : TauCeti.Subcomodule R C M) => { carrier := N.toSubmodule ⊔ P.toSubmodule, coact_mem' := ⋯ } }
The supremum of a set of subcomodules has underlying submodule the supremum of the underlying submodules.
Equations
- TauCeti.Subcomodule.instSupSet = { sSup := fun (S : Set (TauCeti.Subcomodule R C M)) => { carrier := ⨆ (N : ↑S), (↑N).toSubmodule, coact_mem' := ⋯ } }
The underlying submodule of the join is the join of the underlying submodules.
Membership in the join of two subcomodules.
Subcomodules form a semilattice under the join whose carrier is the supremum of the underlying submodules.
Equations
- One or more equations did not get rendered due to their size.
The underlying submodule of a supremum of a set of subcomodules is the supremum of the underlying submodules indexed by that set.
Membership in the supremum of a set of subcomodules.
The underlying submodule of a supremum of subcomodules is the supremum of the underlying submodules.
Membership in the supremum of a family of subcomodules.
Subcomodules have arbitrary suprema, computed on underlying submodules.
Equations
- TauCeti.Subcomodule.instCompleteSemilatticeSup = { toPartialOrder := TauCeti.Subcomodule.instPartialOrder, toSupSet := TauCeti.Subcomodule.instSupSet, isLUB_sSup := ⋯ }
The carrier of a nonempty directed supremum of subcomodules is the union of their carriers.
An element belongs to a nonempty directed supremum of subcomodules exactly when it belongs to one member of the family.
The carrier of the supremum of a nonempty directed set of subcomodules is the union of its carriers.
Membership in the supremum of a nonempty directed set of subcomodules reduces to membership in one member of the set.
The join of finitely generated subcomodules is finitely generated as an R-module.
The join of finitely generated subcomodules is finitely generated as an R-module.
The underlying submodule of a finite join of subcomodules is the finite join of the underlying submodules.
Membership in a finite join of subcomodules.
A finite supremum of finitely generated subcomodules is finitely generated as an
R-module.
A finite join of finitely generated subcomodules is finitely generated as an
R-module.
The image of a binary join is the binary join of the images.
The image of a supremum is the supremum of the images.
The image of a finite join is the finite join of the images.