Polarized Individuals and the Birkhoff Representation @cite{elliott-2025} #
@cite{van-benthem-1984}
Entity–polarity pairs, trivalent functions, and the Birkhoff representation theorem for conservative GQs.
Overview #
@cite{elliott-2025} argues that determiners denote sets of polarized
individuals — entity–polarity pairs (e, ±) that encode whether an
entity witnesses the restrictor ∩ scope (positive) or the restrictor ∖
scope (negative). The conservative GQ lattice (ConsGQ, §12 of
Core.Logic.Quantification) is the algebraic setting.
The module is organized in five sections:
Trivalent values (
Tri): three-valued type{pos, neg, blank}encoding an entity's status relative to a quantifier.Encoding/decoding (
triFunction,triSupport,triPositive): round-trip between(R, S)predicate pairs and trivalent functionsα → Tri. This gives the concrete representation of the polarized domain D_e^± from Elliott §4.3.Birkhoff representation (
consGQOrderIso): the order-isomorphismConsGQ α ≃o ((α → Tri) → Prop), using mathlib'sEquiv.toOrderIso. This is the concrete Birkhoff representation: conservative GQs are exactly predicates on trivalent functions. Conservativity is a structural consequence of the encoding —predToGQ_conservativeshows any predicate on trivalent functions yields a conservative GQ.Entity–polarity pairs (
PolInd α = α × Bool): the compositionally useful type. A polarized individual(e, p)maps to the GQλ R S => R(e) ∧ (S(e) ↔ p)via polarized functional application. Under the Birkhoff representation, eachPolIndcorresponds to an atomic predicate checking a single entity's polarity.Boolean algebra structure:
ConsGQ αis a Boolean algebra.
Equations
- Core.Quantification.instDecidableEqTri x✝ y✝ = if h : x✝.ctorIdx = y✝.ctorIdx then isTrue ⋯ else isFalse ⋯
Equations
- Core.Quantification.instReprTri = { reprPrec := Core.Quantification.instReprTri.repr }
Equations
- One or more equations did not get rendered due to their size.
Instances For
Whether a trivalent value is non-blank (= in the restrictor).
Equations
Instances For
Whether a trivalent value is positive (= in restrictor ∩ scope).
Equations
- Core.Quantification.Tri.pos.IsPos = True
- Core.Quantification.Tri.neg.IsPos = False
- Core.Quantification.Tri.blank.IsPos = False
Instances For
Equations
- One or more equations did not get rendered due to their size.
Equations
- One or more equations did not get rendered due to their size.
Encode a (restrictor, scope) pair as a trivalent function. pos = R ∩ S, neg = R ∖ S, blank = outside R. Noncomputable: uses classical decidability of the input predicates.
Equations
- Core.Quantification.triFunction R S e = if R e then if S e then Core.Quantification.Tri.pos else Core.Quantification.Tri.neg else Core.Quantification.Tri.blank
Instances For
Decode the restrictor from a trivalent function.
Equations
- Core.Quantification.triSupport f e = (f e).IsNonBlank
Instances For
Decode the positive part (R ∩ S) from a trivalent function.
Equations
- Core.Quantification.triPositive f e = (f e).IsPos
Instances For
Map a predicate on trivalent functions to a GQ. @cite{elliott-2025}, §4.3.2, equation (44).
Equations
- Core.Quantification.predToGQ P R S = P (Core.Quantification.triFunction R S)
Instances For
Map a GQ to a predicate on trivalent functions. @cite{elliott-2025}, §4.3.1, equation (40).
Equations
Instances For
Lift predToGQ into the conservative GQ sublattice.
Equations
Instances For
Round-trip: decoding then encoding a conservative GQ is the identity. Uses conservativity in the key step.
Birkhoff Representation for ConsGQ.
Conservative GQs are order-isomorphic to predicates on trivalent functions (= the powerset of the polarized domain D_e^±).
This is the concrete Birkhoff representation: the abstract version
(OrderIso.lowerSetSupIrred in Mathlib.Order.Birkhoff) identifies
any finite distributive lattice with the lattice of lower sets of its
sup-irreducible elements. Our isomorphism makes this explicit for
ConsGQ using Equiv.toOrderIso from mathlib.
The isomorphism is constructive in shape (though predToGQ is
noncomputable due to classical decidability) and works for any α.
Equations
- One or more equations did not get rendered due to their size.
Instances For
For any GQ (not necessarily conservative), the Birkhoff round-trip replaces S with R ∩ S. Conservative GQs are exactly those for which this substitution is the identity. Non-conservative determiners cannot be expressed as predicates on trivalent functions. @cite{elliott-2025}, §4.3, eq. (43).
Polarized individual: an entity paired with a polarity.
(e, true) = positive (e⁺): entity witnesses restrictor ∩ scope.
(e, false) = negative (e⁻): entity witnesses restrictor ∖ scope.
Equations
- Core.Quantification.PolInd α = (α × Bool)
Instances For
GQ denotation via polarized functional application.
⟦(e, true)⟧(R, S) = R(e) ∧ S(e) — entity in restrictor ∩ scope.
⟦(e, false)⟧(R, S) = R(e) ∧ ¬S(e) — entity in restrictor ∖ scope.
Equations
- x.toGQ R S = (R x.1 ∧ if x.2 = true then S x.1 else ¬S x.1)
Instances For
The GQ of a polarized individual is conservative.
The positive polarized individual (e, true) restricts the
Montagovian individual individual e to entities in the restrictor.
Under the Birkhoff representation, an entity-polarity pair
corresponds to an atomic predicate: (e, p) maps to the predicate
that checks whether e is in the restrictor and has matching
polarity in the trivalent function.
Positive and negative polarized individuals for the same entity are
complementary within the restrictor: their join covers all cases
where e ∈ R, and their meet is ⊥ (restricted to R).
This is the lattice-theoretic content of the "split reading":
e⁺ ⊔ e⁻ = λR S. R(e) (the individual-restrictor GQ).
toConsGQ x ≤ toConsGQ y iff x = y: distinct polarized
individuals are incomparable in the ConsGQ lattice (they form an
antichain).
TODO: revive proof after Bool→Prop GQ migration. The original proof
instantiates the implication at a witness pair (· = x.1, λ _ => x.2);
after the migration, the subtype ≤ no longer applies as cleanly and
the case-split on x.2 / y.2 interacts awkwardly with Prop equality.
The downstream code uses pos_sup_neg/pos_inf_neg rather than this
antichain lemma, so the gap is non-blocking.
The embedding is order-reflecting: an injection into ConsGQ α.
Equations
- Core.Quantification.instComplSubtypeGQMemSublatticeConsGQ = { compl := fun (q : ↥(Core.Quantification.ConsGQ α)) => ⟨fun (R S : α → Prop) => ¬↑q R S, ⋯⟩ }
Equations
- Core.Quantification.instSDiffSubtypeGQMemSublatticeConsGQ = { sdiff := fun (q₁ q₂ : ↥(Core.Quantification.ConsGQ α)) => q₁ ⊓ q₂ᶜ }
Equations
- Core.Quantification.instHImpSubtypeGQMemSublatticeConsGQ = { himp := fun (q₁ q₂ : ↥(Core.Quantification.ConsGQ α)) => q₂ ⊔ q₁ᶜ }
Equations
- One or more equations did not get rendered due to their size.