Semantic Negation: Unified Foundations #
This module unifies the scattered negation semantics in linglib into a coherent architecture with three layers:
- NegOp — a semantic negation operator bundling involution + antitonicity,
with
standardNeg(pnot) as the canonical instance - DEStrength ↔ PolarityLicensing bridge — the entailment hierarchy
(weak DE / anti-additive / anti-morphic) determines the polarity licensing
profile, connecting the
Prop-based semantic properties inEntailmentto theBool-valued empirical classification inSemantics.Negation - Scoped vs unscoped negation — a negation operator that retains scope into a domain preserves its semantic properties; when scope is blocked (e.g., by phase transfer), it loses antitonicity and hence licensing ability
Dependencies #
Semantics.Negation— framework-agnostic classification types (ENType, ENStrength, PolarityClass, PolarityLicensing) with Mathlib lattice instancesMathlib.Data.Set.Basic— set complement (pᶜ) is the canonical propositional negation (no custompnotwrapper)NaturalLogic—DEStrength(weak/antiAdditive/antiMorphic),strengthSufficientEntailment—IsDE = Antitone,IsUE = Monotone,pnot_isDownwardEntailingEntailment—IsAntiAdditive,IsAntiMorphic,pnot_isAntiMorphic,licensesWeakNPI,licensesStrongNPI
A semantic negation operator on decidable propositions over worlds W.
Bundles a function with its two defining properties:
- Involution:
¬¬p = p(double negation elimination) - Antitonicity:
p ≤ q → ¬q ≤ ¬p(downward entailment)
Standard sentential negation (pnot) satisfies both. Expletive
negation that has lost its scope may fail antitonicity — it is
then no longer a NegOp in this sense.
TODO: NegOp should operate on Set W not W → Bool — separate cleanup
pass per the Bool→Prop migration. The whole structure (and boolPnot,
standardNeg, isAntiAdditive, isAntiMorphic) lives in the Bool layer
and is out of scope for the current Prop' → Set migration.
- op : (W → Bool) → W → Bool
The negation function on decidable propositions.
- involutive : Function.Involutive self.op
Involutive: applying negation twice is the identity.
- antitone : Antitone self.op
Antitone: reverses the entailment ordering (= DE).
Instances For
Standard sentential negation (pnot) is the canonical NegOp.
It satisfies involution (pnot_pnot), antitonicity
(pnot_antitone), and additionally anti-morphism (De Morgan).
Equations
- Semantics.Negation.standardNeg W = { op := Semantics.Negation.boolPnot✝ W, involutive := ⋯, antitone := ⋯ }
Instances For
A NegOp is anti-additive if it distributes ∨ to ∧:
¬(A ∨ B) = ¬A ∧ ¬B (De Morgan, part 1).
Stated directly on the W → Bool-typed operator.
Equations
- n.isAntiAdditive = ∀ (p q : Entailment.World → Bool) (w : Entailment.World), n.op (fun (w : Entailment.World) => p w || q w) w = (n.op p w && n.op q w)
Instances For
A NegOp is anti-morphic if it is anti-additive AND distributes ∧ to ∨:
¬(A ∧ B) = ¬A ∨ ¬B (De Morgan, part 2).
This is the full De Morgan property — the characteristic signature
of negation in the entailment hierarchy.
Equations
- n.isAntiMorphic = (n.isAntiAdditive ∧ ∀ (p q : Entailment.World → Bool) (w : Entailment.World), n.op (fun (w : Entailment.World) => p w && q w) w = (n.op p w || n.op q w))
Instances For
Standard negation is anti-additive (De Morgan part 1).
Standard negation is anti-morphic (full De Morgan).
The entailment hierarchy determines polarity licensing #
The Bool-valued PolarityLicensing profile in Semantics.Negation is a
consequence of the Prop-based entailment properties in
Entailment:
| DEStrength | Semantic property | Licenses | Profile |
|---|---|---|---|
| weak | Antitone | weak NPIs, N-words | weakENProfile |
| antiAdditive | IsAntiAdditive | + strong NPIs, ¬also | standardNegProfile |
| antiMorphic | IsAntiMorphic | all (= standard neg) | standardNegProfile |
| (none) | ¬ Antitone | nothing | strongENProfile |
The anti-additive and anti-morphic levels both yield standardNegProfile
because notAlsoConj and N-word licensing track anti-additivity, not
anti-morphism ([Chi13] §1.4.3, [Ica12]).
Map DE strength to its empirical polarity licensing profile.
This is the central bridge: the semantic entailment hierarchy
determines the Bool-valued licensing table.
Equations
- Semantics.Negation.deToPolarityLicensing NaturalLogic.DEStrength.weak = Semantics.Negation.weakENProfile
- Semantics.Negation.deToPolarityLicensing NaturalLogic.DEStrength.antiAdditive = Semantics.Negation.standardNegProfile
- Semantics.Negation.deToPolarityLicensing NaturalLogic.DEStrength.antiMorphic = Semantics.Negation.standardNegProfile
Instances For
The bridge is monotone: stronger DE → more licensing in the lattice.
Weak DE licenses exactly weak NPIs and N-words.
Anti-additive DE licenses all polarity classes (= standard negation).
Anti-morphic DE licenses all polarity classes (= standard negation).
EN strength as presence/absence of DE #
The two-valued ENStrength classification collapses the three-level DE
hierarchy into a binary:
ENStrength.weak= the negation retains at least weak DE (≥DEStrength.weak)ENStrength.strong= the negation has lost all DE properties
This is [Gre20]'s core claim: the weak/strong EN distinction reduces to whether negation retains its downward-entailing property.
Map DE strength to EN strength: any DE at all → weak EN.
Equations
- Semantics.Negation.deToENStrength NaturalLogic.DEStrength.weak = Semantics.Negation.ENStrength.weak
- Semantics.Negation.deToENStrength NaturalLogic.DEStrength.antiAdditive = Semantics.Negation.ENStrength.weak
- Semantics.Negation.deToENStrength NaturalLogic.DEStrength.antiMorphic = Semantics.Negation.ENStrength.weak
Instances For
The licensing profile associated with an EN strength.
Weak EN retains at least weakENProfile (the minimum licensing from
any DE context). Strong EN has strongENProfile (= ⊥, no licensing).
Equations
Instances For
enStrengthToLicensing is antitone: stronger EN → less licensing.
This captures the inverse relationship: EN "strength" means strength of expletiveness, not strength of licensing. A stronger EN is more expletive, hence licenses less.
EN type determines EN strength #
The position-based ENType (high/low, [Ret26]) determines the
polarity-based ENStrength (strong/weak, [Gre20]):
- Low EN (truth-conditional, TP-area) → weak EN (retains polarity)
- High EN (non-truth-conditional, CP-area) → strong EN (loses polarity)
This bridge connects the two orthogonal classifications.
Map EN type to EN strength.
Equations
Instances For
Low EN is weak EN.
High EN is strong EN.
The composite bridge: ENType → ENStrength → PolarityLicensing.
Equations
Instances For
Low EN has at least weak licensing.
High EN has no licensing (= ⊥).
Scope determines semantic property survival #
A NegOp that can scope into a domain retains all its semantic properties
(involution, antitonicity, anti-morphism). When scope is blocked — e.g.,
by phase transfer in the Minimalist framework — the operator can no longer
reverse entailment over that domain's propositions.
The connection to EN classification:
- Scoped negation (TP-area merge) → retains
Antitone→ENType.low→ENStrength.weak→weakENProfile - Unscoped negation (CP-area merge, vP transferred) → loses
Antitone→ENType.high→ENStrength.strong→strongENProfile = ⊥
This is the full derivation chain: merge position → scope access → semantic property survival → entailment strength → polarity licensing.
Classify negation by scope access.
A negation with scope into the propositional domain is low EN (truth-conditional). A negation without scope is high EN (non-truth-conditional).
Equations
- Semantics.Negation.scopeToENType canScopeIntoVP = if canScopeIntoVP = true then Semantics.Negation.ENType.low else Semantics.Negation.ENType.high
Instances For
The full derivation chain: scope → ENType → ENStrength → licensing.
Equations
- Semantics.Negation.scopeToLicensing canScopeIntoVP = Semantics.Negation.enTypeToLicensing (Semantics.Negation.scopeToENType canScopeIntoVP)
Instances For
Scoped negation licenses at least weak NPIs and N-words.
Unscoped negation licenses nothing (= ⊥ in the lattice).
The full chain agrees with NegMergePosition.polarityProfile
from NegScope.lean: scope access determines licensing.