Documentation

Linglib.Core.Order.Ortholattice

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:

Main definitions #

Main results #

What fails (relative to BooleanAlgebra) #

Ortholattices need not satisfy:

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.

class OrthocomplementedLattice (α : Type u_1) extends Lattice α, BoundedOrder α, Compl α :
Type u_1

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.

Instances
    @[simp]
    @[simp]
    theorem OrthocomplementedLattice.compl_sup {α : Type u_1} [OrthocomplementedLattice α] (a b : α) :
    (ab) = ab
    theorem OrthocomplementedLattice.compl_inf {α : Type u_1} [OrthocomplementedLattice α] (a b : α) :
    (ab) = ab
    @[implicit_reducible, instance 100]
    instance instBooleanOrtho {α : Type u_1} [BooleanAlgebra α] :

    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.