Modular Lattices #
THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4.
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.
is_weak_upper_modular_lattice: Weakly upper modular lattices. Lattice wherea ⊔ bcoversaandbifaandbboth covera ⊓ b.is_weak_lower_modular_lattice: Weakly lower modular lattices. Lattice whereaandbcovera ⊓ bifa ⊔ bcovers bothaandbis_upper_modular_lattice: Upper modular lattices. Lattices wherea ⊔ bcoversaifbcoversa ⊓ b.is_lower_modular_lattice: Lower modular lattices. Lattices whereacoversa ⊓ bifa ⊔ bcoversb.
is_modular_lattice: 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 #
inf_Icc_order_iso_Icc_supgives 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 #
is_modular_lattice_iff_inf_sup_inf_assoc: Modularity is equivalent to theinf_sup_inf_assoc:(x ⊓ z) ⊔ (y ⊓ z) = ((x ⊓ z) ⊔ y) ⊓ zdistrib_lattice.is_modular_lattice: Distributive lattices are modular.
References #
- Manfred Stern, Semimodular lattices. {Theory} and applications
- [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.
Instances of this typeclass
A weakly lower modular lattice is a lattice where a and b cover a ⊓ b if a ⊔ b covers
both a and b.
Instances of this typeclass
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.
Instances of this typeclass
A lower modular lattice is a lattice where a and b both cover a ⊓ b if a ⊔ b covers
either a or b.
Instances of this typeclass
A modular lattice is one with a limited associativity between ⊓ and ⊔.
Alias of covby_sup_of_inf_covby_of_inf_covby_left.
Alias of inf_covby_of_covby_sup_of_covby_sup_left.
Alias of covby_sup_of_inf_covby_left.
Alias of covby_sup_of_inf_covby_right.
Alias of inf_covby_of_covby_sup_left.
Alias of inf_covby_of_covby_sup_right.
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]
The diamond isomorphism between the intervals ]a ⊓ b, a[ and }b, a ⊔ b[.
The diamond isomorphism between the intervals set.Iic a and set.Ici b.
Equations
- h.Iic_order_iso_Ici = (order_iso.set_congr (set.Iic a) (set.Icc (a ⊓ b) a) _).trans ((inf_Icc_order_iso_Icc_sup a b).trans (order_iso.set_congr (set.Icc b (a ⊔ b)) (set.Ici b) _))