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
- Negation.instDecidableEqENBlockingReason x✝ y✝ = if h : x✝.ctorIdx = y✝.ctorIdx then isTrue ⋯ else isFalse ⋯
Equations
- Negation.instReprENBlockingReason = { reprPrec := Negation.instReprENBlockingReason.repr }
Equations
- One or more equations did not get rendered due to their size.
Instances For
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
- Negation.instDecidableEqENType x✝ y✝ = if h : x✝.ctorIdx = y✝.ctorIdx then isTrue ⋯ else isFalse ⋯
Equations
- Negation.instReprENType.repr Negation.ENType.high prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ ≥ 1024 then 1 else 2) (Std.Format.text "Negation.ENType.high")).group prec✝
- Negation.instReprENType.repr Negation.ENType.low prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ ≥ 1024 then 1 else 2) (Std.Format.text "Negation.ENType.low")).group prec✝
Instances For
Equations
- Negation.instReprENType = { reprPrec := Negation.instReprENType.repr }
ENType ≃ Bool: low ↦ false, high ↦ true.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- Negation.instFintypeENType = Fintype.ofEquiv Bool 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
- Negation.instDecidableEqENStrength x✝ y✝ = if h : x✝.ctorIdx = y✝.ctorIdx then isTrue ⋯ else isFalse ⋯
Equations
- Negation.instReprENStrength = { reprPrec := Negation.instReprENStrength.repr }
Equations
- Negation.instReprENStrength.repr Negation.ENStrength.weak prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ ≥ 1024 then 1 else 2) (Std.Format.text "Negation.ENStrength.weak")).group prec✝
- Negation.instReprENStrength.repr Negation.ENStrength.strong prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ ≥ 1024 then 1 else 2) (Std.Format.text "Negation.ENStrength.strong")).group prec✝
Instances For
ENStrength ≃ Bool: weak ↦ false, strong ↦ true.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- Negation.instFintypeENStrength = Fintype.ofEquiv Bool Negation.ENStrength.equivBool.symm
Numeric embedding: weak ↦ 0, strong ↦ 1. Ordering: weak < strong (retains-polarity before loses-polarity).
Equations
Instances For
Equations
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
- 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
- Negation.instReprPolarityClass = { reprPrec := Negation.instReprPolarityClass.repr }
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
- Negation.instFintypePolarityClass = Fintype.ofEquiv (Fin 4) 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
- Negation.instReprPolarityLicensing = { reprPrec := Negation.instReprPolarityLicensing.repr }
Equations
- One or more equations did not get rendered due to their size.
Instances For
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
- Negation.weakENProfile = { weakNPIs := true, strongNPIs := false, notAlsoConj := false, nWords := true }
Instances For
Strong EN environments license NONE of the four polarity classes.
Equations
- 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
- Negation.instFintypePolarityLicensing = Fintype.ofEquiv (Bool × Bool × Bool × Bool) Negation.PolarityLicensing.equiv.symm
Equations
- One or more equations did not get rendered due to their size.
Equations
- Negation.instDecidableRelPolarityLicensingLe a b = instDecidableEqBool (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
- Negation.standardNegProfile = { weakNPIs := true, strongNPIs := true, notAlsoConj := true, nWords := true }
Instances For
Equations
Equations
Strong EN (⊥) ≤ weak EN in the licensing lattice.