Module docstring
{"# 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 ⊔ bcoversaandbifaandbboth covera ⊓ b.IsWeakLowerModularLattice: Weakly lower modular lattices. Lattice whereaandbcovera ⊓ bifa ⊔ bcovers bothaandbIsUpperModularLattice: Upper modular lattices. Lattices wherea ⊔ bcoversaifbcoversa ⊓ b.IsLowerModularLattice: Lower modular lattices. Lattices whereacoversa ⊓ bifa ⊔ bcoversb.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
infIccOrderIsoIccSupgives 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) ⊓ zDistribLattice.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 "}