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 a
indicates that the only element belowa
is⊥
.IsCoatom a
indicates that the only element abovea
is⊤
.
Atomic and Atomistic Lattices #
IsAtomic
indicates that every element other than⊥
is above an atom.IsCoatomic
indicates that every element other than⊤
is below a coatom.IsAtomistic
indicates that every element is thesSup
of a set of atoms.IsCoatomistic
indicates that every element is thesInf
of a set of coatoms.IsStronglyAtomic
indicates that for alla < b
, there is somex
witha ⋖ x ≤ b
.IsStronglyCoatomic
indicates that for alla < b
, there is somex
witha ≤ x ⋖ b
.
Simple Lattices #
IsSimpleOrder
indicates that an order has only two unique elements,⊥
and⊤
.IsSimpleOrder.boundedOrder
IsSimpleOrder.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_isCoatom
andisCoatom_dual_iff_isAtom
express the (definitional) duality ofIsAtom
andIsCoatom
.isSimpleOrder_iff_isAtom_top
andisSimpleOrder_iff_isCoatom_bot
express the connection between atoms, coatoms, and simple latticesIsCompl.isAtom_iff_isCoatom
andIsCompl.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 the reverse direction of isCoatom_dual_iff_isAtom
.
Alias of the reverse direction of isAtom_dual_iff_isCoatom
.
Alias of the reverse direction of covBy_top_iff
.
Alias of the forward direction of covBy_top_iff
.
Every element other than ⊤
has an atom above it.
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Alias of exists_covBy_le_of_lt
.
Alias of exists_le_covBy_of_lt
.
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- CompleteBooleanAlgebra.toCompleteAtomicBooleanAlgebra = let __spread.0 := inst✝; CompleteAtomicBooleanAlgebra.mk ⋯ ⋯ ⋯ ⋯ ⋯ ⋯
Instances For
A lattice is atomistic iff every element is a sSup
of a set of atoms.
Every element is a
sSup
of a set of atoms.
Instances
Every element is a sSup
of a set of atoms.
A lattice is coatomistic iff every element is an sInf
of a set of coatoms.
Every element is a
sInf
of a set of coatoms.
Instances
Every element is a sInf
of a set of coatoms.
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
An order is simple iff it has exactly two elements, ⊥
and ⊤
.
- exists_pair_ne : ∃ (x : α) (y : α), x ≠ y
Every element is either
⊥
or⊤
Instances
Every element is either ⊥
or ⊤
Equations
- ⋯ = ⋯
A simple BoundedOrder
induces a preorder. This is not an instance to prevent loops.
Equations
- IsSimpleOrder.preorder = Preorder.mk ⋯ ⋯ ⋯
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
.
Alias of IsSimpleOrder.eq_bot_of_lt
.
Alias of IsSimpleOrder.eq_bot_of_lt
.
Alias of IsSimpleOrder.eq_top_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
- IsSimpleOrder.lattice = LinearOrder.toLattice
Instances For
A lattice that is a BoundedOrder
is a distributive lattice.
This is not an instance to prevent loops
Equations
- IsSimpleOrder.distribLattice = let __src := inferInstance; DistribLattice.mk ⋯
Instances For
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
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 = let __src := IsSimpleOrder.equivBool; { toEquiv := __src, map_rel_iff' := ⋯ }
Instances For
A simple BoundedOrder
is also a BooleanAlgebra
.
Equations
- IsSimpleOrder.booleanAlgebra = let __src := inferInstanceAs (BoundedOrder α); let __src_1 := IsSimpleOrder.distribLattice; BooleanAlgebra.mk ⋯ ⋯ ⋯ ⋯ ⋯ ⋯
Instances For
A simple BoundedOrder
is also complete.
Equations
- IsSimpleOrder.completeLattice = let __src := inferInstance; let __src_1 := inferInstance; CompleteLattice.mk ⋯ ⋯ ⋯ ⋯ ⋯ ⋯
Instances For
A simple BoundedOrder
is also a CompleteBooleanAlgebra
.
Equations
- IsSimpleOrder.completeBooleanAlgebra = let __spread.0 := IsSimpleOrder.completeLattice; let __spread.1 := IsSimpleOrder.booleanAlgebra; CompleteBooleanAlgebra.mk ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯
Instances For
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
A complete upper-modular lattice that is atomistic is strongly atomic. Not an instance to prevent loops.
A complete 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.
Equations
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Alias of the reverse direction of isAtom_compl
.
Alias of the forward direction of isAtom_compl
.
Alias of the forward direction of isCoatom_compl
.
Alias of the reverse direction of isCoatom_compl
.