Modular Lattices #
This file defines (semi)modular lattices, a kind of lattice useful in algebra. For examples, look to the subobject lattices of abelian groups, submodules, and ideals, or consider any distributive lattice.
Typeclasses #
We define (semi)modularity typeclasses as Prop-valued mixins.
IsWeakUpperModularLattice
: Weakly upper modular lattices. Lattice wherea ⊔ b
coversa
andb
ifa
andb
both covera ⊓ b
.IsWeakLowerModularLattice
: Weakly lower modular lattices. Lattice wherea
andb
covera ⊓ b
ifa ⊔ b
covers botha
andb
IsUpperModularLattice
: Upper modular lattices. Lattices wherea ⊔ b
coversa
ifb
coversa ⊓ b
.IsLowerModularLattice
: Lower modular lattices. Lattices wherea
coversa ⊓ b
ifa ⊔ b
coversb
.
IsModularLattice
: Modular lattices. Lattices wherea ≤ c → (a ⊔ b) ⊓ c = a ⊔ (b ⊓ c)
. We only require an inequality because the other direction holds in all lattices.
Main Definitions #
infIccOrderIsoIccSup
gives an order isomorphism between the intervals[a ⊓ b, a]
and[b, a ⊔ b]
. This corresponds to the diamond (or second) isomorphism theorems of algebra.
Main Results #
isModularLattice_iff_inf_sup_inf_assoc
: Modularity is equivalent to theinf_sup_inf_assoc
:(x ⊓ z) ⊔ (y ⊓ z) = ((x ⊓ z) ⊔ y) ⊓ z
DistribLattice.isModularLattice
: Distributive lattices are modular.
References #
- [Manfred Stern, Semimodular lattices. {Theory} and applications][stern2009]
- [Wikipedia, Modular Lattice][https://en.wikipedia.org/wiki/Modular_lattice]
TODO #
- Relate atoms and coatoms in modular lattices
A weakly upper modular lattice is a lattice where a ⊔ b
covers a
and b
if a
and b
both
cover a ⊓ b
.
a ⊔ b
coversa
andb
ifa
andb
both covera ⊓ b
.
Instances
A weakly lower modular lattice is a lattice where a
and b
cover a ⊓ b
if a ⊔ b
covers
both a
and b
.
a
andb
covera ⊓ b
ifa ⊔ b
covers botha
andb
Instances
An upper modular lattice, aka semimodular lattice, is a lattice where a ⊔ b
covers a
and b
if either a
or b
covers a ⊓ b
.
a ⊔ b
coversa
andb
if eithera
orb
coversa ⊓ b
Instances
Alias of covBy_sup_of_inf_covBy_of_inf_covBy_left
.
Equations
- (_ : IsWeakLowerModularLattice αᵒᵈ) = (_ : IsWeakLowerModularLattice αᵒᵈ)
Alias of inf_covBy_of_covBy_sup_of_covBy_sup_left
.
Equations
- (_ : IsWeakUpperModularLattice αᵒᵈ) = (_ : IsWeakUpperModularLattice αᵒᵈ)
Alias of covBy_sup_of_inf_covBy_left
.
Alias of covBy_sup_of_inf_covBy_right
.
Equations
- (_ : IsWeakUpperModularLattice α) = (_ : IsWeakUpperModularLattice α)
Equations
- (_ : IsLowerModularLattice αᵒᵈ) = (_ : IsLowerModularLattice αᵒᵈ)
Alias of inf_covBy_of_covBy_sup_left
.
Alias of inf_covBy_of_covBy_sup_right
.
Equations
- (_ : IsWeakLowerModularLattice α) = (_ : IsWeakLowerModularLattice α)
Equations
- (_ : IsUpperModularLattice αᵒᵈ) = (_ : IsUpperModularLattice αᵒᵈ)
Equations
- (_ : IsModularLattice αᵒᵈ) = (_ : IsModularLattice αᵒᵈ)
A generalization of the theorem that if N
is a submodule of M
and
N
and M / N
are both Artinian, then M
is Artinian.
A generalization of the theorem that if N
is a submodule of M
and
N
and M / N
are both Noetherian, then M
is Noetherian.
The diamond isomorphism between the intervals [a ⊓ b, a]
and [b, a ⊔ b]
Equations
- One or more equations did not get rendered due to their size.
Instances For
The diamond isomorphism between the intervals ]a ⊓ b, a[
and }b, a ⊔ b[
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- (_ : IsLowerModularLattice α) = (_ : IsLowerModularLattice α)
Equations
- (_ : IsUpperModularLattice α) = (_ : IsUpperModularLattice α)
The diamond isomorphism between the intervals Set.Iic a
and Set.Ici b
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- (_ : IsModularLattice α) = (_ : IsModularLattice α)
Equations
- (_ : IsModularLattice ↑(Set.Iic a)) = (_ : IsModularLattice ↑(Set.Iic a))
Equations
- (_ : IsModularLattice ↑(Set.Ici a)) = (_ : IsModularLattice ↑(Set.Ici a))
Equations
- (_ : ComplementedLattice ↑(Set.Iic a)) = (_ : ComplementedLattice ↑(Set.Iic a))
Equations
- (_ : ComplementedLattice ↑(Set.Ici a)) = (_ : ComplementedLattice ↑(Set.Ici a))