Expletive Negation Typology #
Pre-Fragment typological substrate for expletive negation (EN): framework-agnostic classification types that Fragments and Studies import to type their per-language EN data. The trigger-class / licensing apparatus traces to [Esp92]'s logical-absorption account, on which the [Gre20] / [Ret26] refinements build.
Two orthogonal classifications:
ENType(high/low) — [Ret26]'s position-based classificationENStrength(weak/strong) — [Gre20]'s polarity-based classificationPolarityClass/PolarityLicensing— polarity-sensitive element classes and their licensing profiles
These types classify EN constructions by their empirical properties
without committing to a syntactic analysis. The syntactic derivation
(from merge position in the extended projection) lives in
Studies/Greco2020.lean under namespace Minimalist.NegScope.
EN blocking reasons #
Cross-linguistic reasons why a trigger class may not license expletive negation in a particular language ([JK21] §7).
- modalRestriction : ENBlockingReason
Language disprefers modal operators in complement clauses
- npOnlyComplement : ENBlockingReason
Comparative complements only allow NPs, not clauses
- analyticNegation : ENBlockingReason
Concept expressed analytically with necessary (non-expletive) negation
Instances For
Equations
- Semantics.Negation.instDecidableEqENBlockingReason x✝ y✝ = if h : x✝.ctorIdx = y✝.ctorIdx then isTrue ⋯ else isFalse ⋯
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
EN type classification #
Two syntactic types of expletive negation ([Ret26]).
High EN appears above TP, targets non-truth-conditional content (exclamatives, surprise negation). It is obligatory where licensed.
Low EN appears below TP (VP-level), targets truth-conditional content in ambidirectional environments. It is optional and triggers a manner implicature (evaluativity).
Instances For
Equations
- Semantics.Negation.instDecidableEqENType x✝ y✝ = if h : x✝.ctorIdx = y✝.ctorIdx then isTrue ⋯ else isFalse ⋯
Equations
- Semantics.Negation.instReprENType = { reprPrec := Semantics.Negation.instReprENType.repr }
Equations
- One or more equations did not get rendered due to their size.
Instances For
ENType ≃ Bool: low ↦ false, high ↦ true.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- Semantics.Negation.instFintypeENType = Fintype.ofEquiv Bool Semantics.Negation.ENType.equivBool.symm
Numeric embedding: low ↦ 0, high ↦ 1. Ordering: low < high (truth-conditional before non-truth-conditional).
Equations
Instances For
Equations
EN strength classification #
[Gre20] §2.1: EN constructions divide into two classes based on co-occurrence with polarity-sensitive elements.
Weak EN retains some polarity properties of standard negation: licenses weak NPIs and N-words (e.g. finché-clauses, unless-clauses).
Strong EN loses all polarity properties: rejects weak NPIs, strong NPIs, not-also conjunctions, and N-words (e.g. negative exclamatives, rhetorical questions, surprise negation).
- weak : ENStrength
- strong : ENStrength
Instances For
Equations
- Semantics.Negation.instDecidableEqENStrength x✝ y✝ = if h : x✝.ctorIdx = y✝.ctorIdx then isTrue ⋯ else isFalse ⋯
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
ENStrength ≃ Bool: weak ↦ false, strong ↦ true.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- Semantics.Negation.instFintypeENStrength = Fintype.ofEquiv Bool Semantics.Negation.ENStrength.equivBool.symm
Numeric embedding: weak ↦ 0, strong ↦ 1. Ordering: weak < strong (retains-polarity before loses-polarity).
Instances For
Polarity classes and licensing profiles #
The four classes of polarity-sensitive elements tested by [Gre20] Table 1. Each EN environment either licenses or rejects each class, giving a four-bit fingerprint.
- weakNPI : PolarityClass
- strongNPI : PolarityClass
- notAlsoConj : PolarityClass
- nWord : PolarityClass
Instances For
Equations
- Semantics.Negation.instDecidableEqPolarityClass x✝ y✝ = if h : x✝.ctorIdx = y✝.ctorIdx then isTrue ⋯ else isFalse ⋯
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
PolarityClass ≃ Fin 4: weakNPI ↦ 0, strongNPI ↦ 1, notAlsoConj ↦ 2, nWord ↦ 3.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- Semantics.Negation.instFintypePolarityClass = Fintype.ofEquiv (Fin 4) Semantics.Negation.PolarityClass.equivFin.symm
Polarity licensing profile for an EN environment ([Gre20] Table 1). Each field records whether that class of polarity-sensitive element is grammatical in the construction.
- weakNPIs : Bool
- strongNPIs : Bool
- notAlsoConj : Bool
- nWords : Bool
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
Accessor: look up a polarity class in the licensing profile.
Equations
Instances For
Weak EN environments license weak NPIs and N-words but NOT strong NPIs or not-also conjunctions.
Equations
- Semantics.Negation.weakENProfile = { weakNPIs := true, strongNPIs := false, notAlsoConj := false, nWords := true }
Instances For
Strong EN environments license NONE of the four polarity classes.
Equations
- Semantics.Negation.strongENProfile = { weakNPIs := false, strongNPIs := false, notAlsoConj := false, nWords := false }
Instances For
The licensing profile determined by an EN strength class ([Gre20] Table 1: rows are uniform within each class).
Equations
Instances For
Strong EN rejects ALL polarity classes (universally quantified).
Weak EN licenses exactly the weak NPIs and N-words.
Equivalence with Bool⁴ for Fintype derivation.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- Semantics.Negation.instFintypePolarityLicensing = Fintype.ofEquiv (Bool × Bool × Bool × Bool) Semantics.Negation.PolarityLicensing.equiv.symm
Equations
- One or more equations did not get rendered due to their size.
Equations
- Semantics.Negation.instDecidableRelPolarityLicensingLe a b = instDecidableEqBool (Semantics.Negation.PolarityLicensing.leBool✝ a b) true
Equations
- One or more equations did not get rendered due to their size.
Standard negation profile: licenses all polarity-sensitive elements.
Equations
- Semantics.Negation.standardNegProfile = { weakNPIs := true, strongNPIs := true, notAlsoConj := true, nWords := true }
Instances For
Equations
Strong EN (⊥) ≤ weak EN in the licensing lattice.
Bridge: PolarityClass ↔ PolarityType #
Partial map from PolarityClass to PolarityType. Two of the four Greco classes correspond directly to PolarityType constructors. N-words and not-also conjunctions are Italian-specific categories without a PolarityType counterpart.
Equations
Instances For
Inverse: map PolarityType to PolarityClass (partial — only NPIs).
Equations
- Semantics.Negation.PolarityClass.fromPolarityType? Semantics.Polarity.PolarityType.npiWeak = some Semantics.Negation.PolarityClass.weakNPI
- Semantics.Negation.PolarityClass.fromPolarityType? Semantics.Polarity.PolarityType.npiStrong = some Semantics.Negation.PolarityClass.strongNPI
- Semantics.Negation.PolarityClass.fromPolarityType? x✝ = none
Instances For
Round-trip: PolarityType → PolarityClass → PolarityType is identity (for the NPI types that have counterparts).
Compose the bridges: look up a PolarityType in a licensing profile
by routing through PolarityClass. Returns none for types without
a PolarityClass counterpart (FCIs, PPIs, NPI-FCIs).
Equations
- p.licensesType t = Option.map p.licenses (Semantics.Negation.PolarityClass.fromPolarityType? t)