Atoms, Coatoms, and Simple Lattices #
This module defines atoms, which are minimal non-⊥ elements in bounded lattices, simple lattices,
which are lattices with only two elements, and related ideas.
Main definitions #
Atoms and Coatoms #
IsAtom aindicates that the only element belowais⊥.IsCoatom aindicates that the only element aboveais⊤.
Atomic and Atomistic Lattices #
IsAtomicindicates that every element other than⊥is above an atom.IsCoatomicindicates that every element other than⊤is below a coatom.IsAtomisticindicates that every element is thesSupof a set of atoms.IsCoatomisticindicates that every element is thesInfof a set of coatoms.IsStronglyAtomicindicates that for alla < b, there is somexwitha ⋖ x ≤ b.IsStronglyCoatomicindicates that for alla < b, there is somexwitha ≤ x ⋖ b.
Simple Lattices #
IsSimpleOrderindicates that an order has only two unique elements,⊥and⊤.IsSimpleOrder.boundedOrderIsSimpleOrder.distribLattice- Given an instance of
IsSimpleOrder, we provide the following definitions. These are not made global instances as they contain data :
Main results #
isAtom_dual_iff_isCoatomandisCoatom_dual_iff_isAtomexpress the (definitional) duality ofIsAtomandIsCoatom.isSimpleOrder_iff_isAtom_topandisSimpleOrder_iff_isCoatom_botexpress the connection between atoms, coatoms, and simple latticesIsCompl.isAtom_iff_isCoatomandIsCompl.isCoatom_if_isAtom: In a modular bounded lattice, a complement of an atom is a coatom and vice versa.isAtomic_iff_isCoatomic: A modular complemented lattice is atomic iff it is coatomic.
Alias of the forward direction of bot_covBy_iff.
Alias of the reverse direction of bot_covBy_iff.
Alias of IsAtom.le_iSup.
Alias of the reverse direction of isCoatom_dual_iff_isAtom.
Alias of the reverse direction of isAtom_dual_iff_isCoatom.
Alias of the forward direction of covBy_top_iff.
Alias of the reverse direction of covBy_top_iff.
Alias of IsCoatom.iInf_le.
Alias of exists_covBy_le_of_lt.
Alias of exists_le_covBy_of_lt.
Every atomic complete Boolean algebra is completely atomic.
This is not made an instance to avoid typeclass loops.
Equations
- CompleteBooleanAlgebra.toCompleteAtomicBooleanAlgebra = { toCompleteBooleanAlgebra := inst✝¹, iInf_iSup_eq := ⋯ }
Instances For
A lattice is atomistic iff every element is a sSup of a set of atoms.
Every element is a
sSupof a set of atoms.
Instances
A lattice is coatomistic iff every element is an sInf of a set of coatoms.
Every element is a
sInfof a set of coatoms.
Instances
An order is simple iff it has exactly two elements, ⊥ and ⊤.
- exists_pair_ne : ∃ (x : α) (y : α), x ≠ y
Every element is either
⊥or⊤
Instances
A simple BoundedOrder induces a preorder. This is not an instance to prevent loops.
Equations
- IsSimpleOrder.preorder = { le := fun (x1 x2 : α) => x1 ≤ x2, le_refl := ⋯, le_trans := ⋯, lt_iff_le_not_ge := ⋯ }
Instances For
A simple partial ordered BoundedOrder induces a linear order.
This is not an instance to prevent loops.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Alias of IsSimpleOrder.eq_bot_of_lt.
Alias of IsSimpleOrder.eq_top_of_lt.
A simple partial ordered BoundedOrder induces a lattice.
This is not an instance to prevent loops
Equations
Instances For
A lattice that is a BoundedOrder is a distributive lattice.
This is not an instance to prevent loops
Equations
- IsSimpleOrder.distribLattice = { toLattice := inferInstance, le_sup_inf := ⋯ }
Instances For
Every simple lattice is isomorphic to Bool, regardless of order.
Equations
Instances For
Every simple lattice over a partial order is order-isomorphic to Bool.
Equations
- IsSimpleOrder.orderIsoBool = { toEquiv := IsSimpleOrder.equivBool, map_rel_iff' := ⋯ }
Instances For
A simple BoundedOrder is also a BooleanAlgebra.
Equations
- One or more equations did not get rendered due to their size.
Instances For
A simple BoundedOrder is also complete.
Equations
- One or more equations did not get rendered due to their size.
Instances For
A simple BoundedOrder is also a CompleteBooleanAlgebra.
Equations
- One or more equations did not get rendered due to their size.
Instances For
An upper-modular lattice that is atomistic is strongly atomic. Not an instance to prevent loops.
Alias of Lattice.isStronglyAtomic.
An upper-modular lattice that is atomistic is strongly atomic. Not an instance to prevent loops.
A lower-modular lattice that is coatomistic is strongly coatomic. Not an instance to prevent loops.
Alias of Lattice.isStronglyCoatomic.
A lower-modular lattice that is coatomistic is strongly coatomic. Not an instance to prevent loops.
A complemented modular atomic lattice is strongly atomic. Not an instance to prevent loops.
A complemented modular coatomic lattice is strongly coatomic. Not an instance to prevent loops.
A complemented modular atomic lattice is strongly coatomic. Not an instance to prevent loops.
A complemented modular coatomic lattice is strongly atomic. Not an instance to prevent loops.
Alias of the forward direction of isAtom_compl.
Alias of the reverse direction of isAtom_compl.
Alias of the reverse direction of isCoatom_compl.
Alias of the forward direction of isCoatom_compl.