Orthocomplemented Lattices #
An orthocomplemented lattice (or ortholattice) is a bounded lattice
equipped with an involutive, order-reversing complement satisfying
non-contradiction and excluded middle. It is the structural dual of a
HeytingAlgebra: where Heyting drops the law of excluded middle but
retains distributivity, ortholattices keep excluded middle but drop
distributivity. BooleanAlgebra = OrthocomplementedLattice + DistribLattice.
The canonical examples are:
- closed subspaces of an inner-product space (orthocomplement = orthogonal complement) — see Birkhoff & von Neumann (1936) "The Logic of Quantum Mechanics", Annals of Mathematics 37(4):823-843, originally formulating ortholattices for quantum-mechanical propositions;
Set-of-◇-regular subsets of a compatibility frame (Holliday & Mandelkern 2024 "The Orthologic of Epistemic Modals", Journal of Philosophical Logic).
Main definitions #
OrthocomplementedLattice α— typeclass extendingLattice α,BoundedOrder α,Compl αwith the four ortholattice axioms.
Main results #
- De Morgan laws (
compl_sup,compl_inf). compl_injective,compl_surjective,compl_le_compl_iff_le.instBooleanOrtho: everyBooleanAlgebrais anOrthocomplementedLattice(low priority so Boolean instances aren't obscured).instComplementedLattice: every ortholattice isComplementedLattice(the existential mathlib typeclass; we strengthen it to a chosen complement function).
What fails (relative to BooleanAlgebra) #
Ortholattices need not satisfy:
- distributivity:
a ⊓ (b ⊔ c) = (a ⊓ b) ⊔ (a ⊓ c); - pseudocomplementation:
a ⊓ b = ⊥ → b ≤ aᶜ; - orthomodularity:
a ≤ b → b = a ⊔ (aᶜ ⊓ b).
Imposing distributivity collapses the typeclass to BooleanAlgebra;
imposing orthomodularity yields orthomodular lattices (the algebra of
quantum-mechanical propositions). Concrete counterexamples to all three
appear in Linglib.Phenomena.Modality.Studies.HollidayMandelkern2024.
TODO #
Upstream candidate for Mathlib/Order/Ortholattice.lean. The natural
mathlib consumer is the lattice of closed subspaces of a Hilbert space
(via Mathlib.Analysis.InnerProductSpace.Orthogonal), which currently
provides every ingredient (Submodule.orthogonal, inf_orthogonal_eq_bot,
le_orthogonal_orthogonal) but stops short of packaging an
OrthocomplementedLattice instance because the typeclass is missing.
An orthocomplemented lattice (ortholattice) is a bounded lattice
α equipped with an involutive, order-reversing complement ᶜ
satisfying non-contradiction (a ⊓ aᶜ ≤ ⊥) and excluded middle
(⊤ ≤ a ⊔ aᶜ).
Every BooleanAlgebra is an ortholattice. The converse fails:
ortholattices need not be distributive.
- sup : α → α → α
- inf : α → α → α
- top : α
- bot : α
- compl : α → α
Complement is involutive:
aᶜᶜ = a.Complement is order-reversing.
Non-contradiction:
a ⊓ aᶜ ≤ ⊥.Excluded middle:
⊤ ≤ a ⊔ aᶜ.
Instances
Every Boolean algebra is an orthocomplemented lattice. The converse fails:
ortholattices need not be distributive. Low priority so existing
BooleanAlgebra API is preferred where applicable.
Equations
- One or more equations did not get rendered due to their size.