Typology.Negation #
@cite{dryer-2013-wals} @cite{haspelmath-2013} @cite{miestamo-2005}
Per-language typological substrate for the standard sentential negation marker of a language: form, morphological status, position, symmetric/ asymmetric status, asymmetry subtype, and negative-indefinite strategy.
Mirrors the Linglib/Typology/Possession.lean (Possession), Question.lean
(Question), and Case.lean (Case) substrate-extension pattern: the
substrate carries (a) per-paradigm-entry schema (NegMarkerEntry,
NegationSystem), (b) the WALS-bundled per-language NegationProfile,
(c) WALS converters and aggregate-distribution helpers / theorems.
What lives here #
NegMorphemeType— direct projection from WALS Ch 112A's 6-way classification (negativeAffix,negativeParticle,negativeAuxiliaryVerb,negativeWordUnclearIfVerbOrParticle,variationBetweenNegativeWordAndAffix,doubleNegation). This is Dryer's WALS Ch 112 morpheme typology, NOT @cite{miestamo-2005}'s construction-level typology — Miestamo classifies constructions, not morphemes. The substrate carries Dryer's classification for cross-linguistic indexing; Miestamo's framework lives inStudies/Miestamo2005.lean.NegMarkerPosition— coarsening of WALS Ch 144A.NegMarkerEntry— one language's standard sentential negation marker.NegationSystem— bundles markers + WALS Ch 112A/143A/144A datapoints. The Fragment-side joint: everyFragments/{Lang}/Negation.leanexposesdef negationSystem : NegationSystem.NegSymmetry,AsymmetrySubtype,NegIndefiniteStrategy,NegVerbPosition,NegMorphemePosition— WALS Ch 113-115/143A feature enums.NegationProfile— sibling per-language schema bundling Ch 112-115 + Greco'snegIsHead+ JinKoenig'senAttested. Each Fragment exposesdef negationProfile : NegationProfilealongsidedef negationSystem. Sibling pattern (mirrorsTypology/Possession.lean::PossessionProfile): the marker-side joint is independent from the typology-feature joint.fromWALS112A/113A/114A/115A/143Aconverters.- WALS aggregate distribution theorems for Ch 112-115/143A/144A core.
Theory-laden caveats #
NegSymmetry and AsymmetrySubtype are WALS Ch 113/114 values
(@cite{dryer-haspelmath-2013}). @cite{miestamo-2005}'s richer
two-dimension framework (constructional vs paradigmatic asymmetry,
derived vs independent source) lives in Studies/Miestamo2005.lean
because it goes beyond what WALS encodes.
Out of scope #
Polarity-sensitive items (n-words, NPIs, FCIs) are NOT marker-side data;
they live in Typology/PolarityItem.lean and in each language's
Fragments/{Lang}/PolarityItems.lean. Cross-linguistic theorems consuming
Fragment per-language data live in
Phenomena/Negation/Studies/Dryer2013.lean (Ch 112/143A/144A grounding)
and Studies/Miestamo2005.lean (Ch 113-115 grounding).
Type of the standard negation morpheme @cite{dryer-2013-wals}.
Six categories anchored on WALS Ch 112A (negative morpheme classification).
Direct projection from Data.WALS.F112A.NegativeMorphemeType via
ofWALS112A; the substrate enum exists for ergonomic pattern-matching
in Fragment files.
- affix : NegMorphemeType
Negative affix on the verb (e.g., Kolyma Yukaghir
el-jaqa-te-je'NEG-achieve-FUT-1SG'). - particle : NegMorphemeType
Free negative particle, no verbal inflection (e.g., English
not, Italiannon). - auxVerb : NegMorphemeType
Negative auxiliary verb inflecting for verbal categories (e.g., Finnish
e-n'NEG-1SG'). - wordUnclear : NegMorphemeType
Negative word whose status as verb or particle is unclear, typically in isolating languages (e.g., Maori
kaahore). - variation : NegMorphemeType
Language uses both negative word and negative affix in different constructions (e.g., Rama).
- doubleNeg : NegMorphemeType
Bipartite negation: two co-occurring morphemes flanking the verb (e.g., French
ne...pas, Izito-...-du).
Instances For
Equations
- Typology.Negation.instDecidableEqNegMorphemeType x✝ y✝ = if h : x✝.ctorIdx = y✝.ctorIdx then isTrue ⋯ else isFalse ⋯
Equations
- Typology.Negation.instBEqNegMorphemeType.beq x✝ y✝ = (x✝.ctorIdx == y✝.ctorIdx)
Instances For
Equations
Equations
Equations
- One or more equations did not get rendered due to their size.
Instances For
Position of the negation morpheme relative to the verb.
One-way coarsening of WALS Ch 144A's full S/O/V grid. The wals144A
field on NegationSystem preserves the precise WALS classification
for callers that need decoarsening.
- preverbal : NegMarkerPosition
- postverbal : NegMarkerPosition
- discontinuous : NegMarkerPosition
- morphological : NegMarkerPosition
- other : NegMarkerPosition
Instances For
Equations
- Typology.Negation.instDecidableEqNegMarkerPosition x✝ y✝ = if h : x✝.ctorIdx = y✝.ctorIdx then isTrue ⋯ else isFalse ⋯
Equations
Equations
- Typology.Negation.instBEqNegMarkerPosition.beq x✝ y✝ = (x✝.ctorIdx == y✝.ctorIdx)
Instances For
Equations
Equations
- One or more equations did not get rendered due to their size.
Instances For
WALS Ch 113A: whether negation changes clause structure beyond adding the negative marker. Symmetric: no structural change. Asymmetric: changes in finiteness, verb paradigm, or TAM marking.
- symmetric : NegSymmetry
- asymmetric : NegSymmetry
- both : NegSymmetry
Both symmetric and asymmetric (Type SymAsy): some constructions symmetric, others asymmetric.
Instances For
Equations
- Typology.Negation.instDecidableEqNegSymmetry x✝ y✝ = if h : x✝.ctorIdx = y✝.ctorIdx then isTrue ⋯ else isFalse ⋯
Equations
- Typology.Negation.instBEqNegSymmetry.beq x✝ y✝ = (x✝.ctorIdx == y✝.ctorIdx)
Instances For
Equations
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
WALS Ch 114A: which grammatical domain is affected by asymmetric negation. The four primary subtypes correspond to @cite{miestamo-2005}'s A/Fin (finiteness), A/NonReal (reality status), A/Emph (emphasis), A/Cat (other categories) plus combined codings.
Note: WALS Ch 114 does not encode A/Emph as a separate value (@cite{miestamo-2005} Table 2 distinguishes it; WALS collapses it).
- finiteness : AsymmetrySubtype
- realityStatus : AsymmetrySubtype
- emphasis : AsymmetrySubtype
- otherCategories : AsymmetrySubtype
- finAndNonReal : AsymmetrySubtype
- finAndEmph : AsymmetrySubtype
- finAndCat : AsymmetrySubtype
- nonRealAndCat : AsymmetrySubtype
- emphAndCat : AsymmetrySubtype
- nonAssignable : AsymmetrySubtype
Non-assignable: language has only symmetric negation.
Instances For
Equations
- Typology.Negation.instDecidableEqAsymmetrySubtype x✝ y✝ = if h : x✝.ctorIdx = y✝.ctorIdx then isTrue ⋯ else isFalse ⋯
Equations
Equations
- Typology.Negation.instBEqAsymmetrySubtype.beq x✝ y✝ = (x✝.ctorIdx == y✝.ctorIdx)
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
WALS Ch 115A: how negative indefinites interact with predicate negation.
- cooccur : NegIndefiniteStrategy
Negative indefinites co-occur with predicate negation (negative concord). Dominant pattern worldwide.
- preclude : NegIndefiniteStrategy
Negative indefinites preclude predicate negation.
- mixed : NegIndefiniteStrategy
Mixed (position-dependent or different indefinite series).
- negExistential : NegIndefiniteStrategy
Negative existential construction.
Instances For
Equations
- Typology.Negation.instDecidableEqNegIndefiniteStrategy x✝ y✝ = if h : x✝.ctorIdx = y✝.ctorIdx then isTrue ⋯ else isFalse ⋯
Equations
- Typology.Negation.instBEqNegIndefiniteStrategy.beq x✝ y✝ = (x✝.ctorIdx == y✝.ctorIdx)
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
WALS Ch 143A: position of negative morpheme relative to verb.
Single-negation types (NegV/VNeg/[Neg-V]/[V-Neg]) plus
multi-negation types (obligatory/optional double, optional triple).
- preverbalParticle : NegVerbPosition
Preverbal negative particle:
NegV. - postverbalParticle : NegVerbPosition
Postverbal negative particle:
VNeg. - preverbalAffix : NegVerbPosition
Preverbal negative affix:
[Neg-V]. - postverbalAffix : NegVerbPosition
Postverbal negative affix:
[V-Neg]. - negativeTone : NegVerbPosition
- mixedSingle : NegVerbPosition
- obligDoublNeg : NegVerbPosition
- optDoubleNeg : NegVerbPosition
- tripleNeg : NegVerbPosition
- optSingleNeg : NegVerbPosition
Instances For
Equations
- Typology.Negation.instDecidableEqNegVerbPosition x✝ y✝ = if h : x✝.ctorIdx = y✝.ctorIdx then isTrue ⋯ else isFalse ⋯
Equations
- Typology.Negation.instBEqNegVerbPosition.beq x✝ y✝ = (x✝.ctorIdx == y✝.ctorIdx)
Instances For
Equations
Equations
Equations
- One or more equations did not get rendered due to their size.
Instances For
WALS Ch 143E/F: whether a language has preverbal and/or postverbal negative morphemes.
- preverbalOnly : NegMorphemePosition
- postverbalOnly : NegMorphemePosition
- preverbalAffixOnly : NegMorphemePosition
- postverbalAffixOnly : NegMorphemePosition
- both : NegMorphemePosition
- none : NegMorphemePosition
Instances For
Equations
- Typology.Negation.instDecidableEqNegMorphemePosition x✝ y✝ = if h : x✝.ctorIdx = y✝.ctorIdx then isTrue ⋯ else isFalse ⋯
Equations
- Typology.Negation.instBEqNegMorphemePosition.beq x✝ y✝ = (x✝.ctorIdx == y✝.ctorIdx)
Instances For
Equations
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
One language's standard sentential negation marker.
- form : String
Surface form. For affixal negation this is an abstract citation form (e.g., Turkish
-mE-for the harmony-conditioned-ma-/-me-alternants). For tonal/morphological negation useposition := .morphologicaland document the realization in thedefdocstring. - gloss : String
Standard interlinear gloss. Defaults to the WALS-style "NEG".
- morphemeType : NegMorphemeType
Morphological status: affix, free particle, auxiliary, etc.
- position : NegMarkerPosition
Coarse position relative to the verb.
Instances For
Equations
Equations
- One or more equations did not get rendered due to their size.
Instances For
A language's standard negation system.
The Fragment-side joint: every Fragments/{Lang}/Negation.lean exposes
def negationSystem : NegationSystem. Multiple markers handle languages
with mood/aspect/lexical-class alternation (Greek, Mandarin, Korean).
Length-1 for most languages.
WALS datapoints are bundled at the system level — in WALS coding, F112A/F143A/F144A take one value per language regardless of how many markers the language has.
- markers : List NegMarkerEntry
Standard negation marker(s). Order is editorial; Fragment files should put the unmarked / default-context marker first.
- wals112A : Option Data.WALS.F112A.NegativeMorphemeType
WALS Ch 112A: morpheme classification. Should not be hand-encoded in Fragment files — use
NegationSystem.ofISOto populate from theData.WALSdata, which is the single source of truth. - wals143A : Option Data.WALS.F143A.NegVerbOrder
WALS Ch 143A: NegV / VNeg / double-negation pattern. Populated by
NegationSystem.ofISO. - wals144A : Option Data.WALS.F144A.PositionOfNegativeWordWithRespectToSubjectObjectAndVerb
WALS Ch 144A: full S/O/V positional classification. Populated by
NegationSystem.ofISO.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
A language's negation profile across WALS Chapters 112-115, plus
fields from @cite{greco-2020} (negIsHead) and @cite{jin-koenig-2021}
(enAttested).
Sibling Fragment-side joint to NegationSystem: every
Fragments/{Lang}/Negation.lean exposes def negationProfile : NegationProfile. The two joints are independent because the data
partition is real: negationSystem.markers is consumed by lexical
code; negationProfile is consumed by typology studies. Mirrors
Typology/Possession.lean::PossessionProfile.
- language : String
Language name.
- iso : String
ISO 639-3 code.
- morphemeType : NegMorphemeType
Ch 112: how standard negation is expressed.
- symmetry : NegSymmetry
Ch 113: symmetric, asymmetric, or both.
- asymmetrySubtype : AsymmetrySubtype
Ch 114: asymmetry subtype (
nonAssignableif symmetric only). - negIndefinite : Option NegIndefiniteStrategy
Ch 115: strategy for negative indefinites, if attested.
- negMarkers : List String
Illustrative negative marker form(s).
- negIsHead : Option Bool
Is the negation marker a syntactic head (X°) rather than a phrase (XP)? Relevant for @cite{greco-2020}: only head-status markers can merge in CP to produce surprise negation.
- enAttested : Option Bool
Is expletive negation attested in this language? @cite{jin-koenig-2021} (722-language survey: EN in 74 languages) and @cite{rett-2026}.
Instances For
Equations
Equations
- One or more equations did not get rendered due to their size.
Instances For
WALS Ch 112A → NegMorphemeType.
Equations
- Typology.Negation.ofWALS112A Data.WALS.F112A.NegativeMorphemeType.negativeAffix = Typology.Negation.NegMorphemeType.affix
- Typology.Negation.ofWALS112A Data.WALS.F112A.NegativeMorphemeType.negativeParticle = Typology.Negation.NegMorphemeType.particle
- Typology.Negation.ofWALS112A Data.WALS.F112A.NegativeMorphemeType.negativeAuxiliaryVerb = Typology.Negation.NegMorphemeType.auxVerb
- Typology.Negation.ofWALS112A Data.WALS.F112A.NegativeMorphemeType.negativeWordUnclearIfVerbOrParticle = Typology.Negation.NegMorphemeType.wordUnclear
- Typology.Negation.ofWALS112A Data.WALS.F112A.NegativeMorphemeType.variationBetweenNegativeWordAndAffix = Typology.Negation.NegMorphemeType.variation
- Typology.Negation.ofWALS112A Data.WALS.F112A.NegativeMorphemeType.doubleNegation = Typology.Negation.NegMorphemeType.doubleNeg
Instances For
WALS Ch 113A → NegSymmetry.
Equations
- Typology.Negation.fromWALS113A Data.WALS.F113A.NegationSymmetry.symmetric = Typology.Negation.NegSymmetry.symmetric
- Typology.Negation.fromWALS113A Data.WALS.F113A.NegationSymmetry.asymmetric = Typology.Negation.NegSymmetry.asymmetric
- Typology.Negation.fromWALS113A Data.WALS.F113A.NegationSymmetry.both = Typology.Negation.NegSymmetry.both
Instances For
WALS Ch 114A → AsymmetrySubtype.
Equations
- Typology.Negation.fromWALS114A Data.WALS.F114A.AsymmetricNegationSubtype.aFin = Typology.Negation.AsymmetrySubtype.finiteness
- Typology.Negation.fromWALS114A Data.WALS.F114A.AsymmetricNegationSubtype.aNonreal = Typology.Negation.AsymmetrySubtype.realityStatus
- Typology.Negation.fromWALS114A Data.WALS.F114A.AsymmetricNegationSubtype.aCat = Typology.Negation.AsymmetrySubtype.otherCategories
- Typology.Negation.fromWALS114A Data.WALS.F114A.AsymmetricNegationSubtype.aFinAndANonreal = Typology.Negation.AsymmetrySubtype.finAndNonReal
- Typology.Negation.fromWALS114A Data.WALS.F114A.AsymmetricNegationSubtype.aFinAndACat = Typology.Negation.AsymmetrySubtype.finAndCat
- Typology.Negation.fromWALS114A Data.WALS.F114A.AsymmetricNegationSubtype.aNonrealAndACat = Typology.Negation.AsymmetrySubtype.nonRealAndCat
- Typology.Negation.fromWALS114A Data.WALS.F114A.AsymmetricNegationSubtype.nonAssignable = Typology.Negation.AsymmetrySubtype.nonAssignable
Instances For
WALS Ch 115A → NegIndefiniteStrategy.
Equations
- Typology.Negation.fromWALS115A Data.WALS.F115A.NegativeIndefiniteType.predicateNegationAlsoPresent = Typology.Negation.NegIndefiniteStrategy.cooccur
- Typology.Negation.fromWALS115A Data.WALS.F115A.NegativeIndefiniteType.noPredicateNegation = Typology.Negation.NegIndefiniteStrategy.preclude
- Typology.Negation.fromWALS115A Data.WALS.F115A.NegativeIndefiniteType.mixedBehaviour = Typology.Negation.NegIndefiniteStrategy.mixed
- Typology.Negation.fromWALS115A Data.WALS.F115A.NegativeIndefiniteType.negativeExistentialConstruction = Typology.Negation.NegIndefiniteStrategy.negExistential
Instances For
WALS Ch 143A → NegVerbPosition.
Equations
- Typology.Negation.fromWALS143A Data.WALS.F143A.NegVerbOrder.negv = Typology.Negation.NegVerbPosition.preverbalParticle
- Typology.Negation.fromWALS143A Data.WALS.F143A.NegVerbOrder.vneg = Typology.Negation.NegVerbPosition.postverbalParticle
- Typology.Negation.fromWALS143A Data.WALS.F143A.NegVerbOrder.negV = Typology.Negation.NegVerbPosition.preverbalAffix
- Typology.Negation.fromWALS143A Data.WALS.F143A.NegVerbOrder.vNeg = Typology.Negation.NegVerbPosition.postverbalAffix
- Typology.Negation.fromWALS143A Data.WALS.F143A.NegVerbOrder.negativeTone = Typology.Negation.NegVerbPosition.negativeTone
- Typology.Negation.fromWALS143A Data.WALS.F143A.NegVerbOrder.type1Type2 = Typology.Negation.NegVerbPosition.mixedSingle
- Typology.Negation.fromWALS143A Data.WALS.F143A.NegVerbOrder.type1Type3 = Typology.Negation.NegVerbPosition.mixedSingle
- Typology.Negation.fromWALS143A Data.WALS.F143A.NegVerbOrder.type1Type4 = Typology.Negation.NegVerbPosition.mixedSingle
- Typology.Negation.fromWALS143A Data.WALS.F143A.NegVerbOrder.type2Type3 = Typology.Negation.NegVerbPosition.mixedSingle
- Typology.Negation.fromWALS143A Data.WALS.F143A.NegVerbOrder.type2Type4 = Typology.Negation.NegVerbPosition.mixedSingle
- Typology.Negation.fromWALS143A Data.WALS.F143A.NegVerbOrder.type3Type4 = Typology.Negation.NegVerbPosition.mixedSingle
- Typology.Negation.fromWALS143A Data.WALS.F143A.NegVerbOrder.type3NegativeInfix = Typology.Negation.NegVerbPosition.mixedSingle
- Typology.Negation.fromWALS143A Data.WALS.F143A.NegVerbOrder.optsingleneg = Typology.Negation.NegVerbPosition.optSingleNeg
- Typology.Negation.fromWALS143A Data.WALS.F143A.NegVerbOrder.obligdoubleneg = Typology.Negation.NegVerbPosition.obligDoublNeg
- Typology.Negation.fromWALS143A Data.WALS.F143A.NegVerbOrder.optdoubleneg = Typology.Negation.NegVerbPosition.optDoubleNeg
- Typology.Negation.fromWALS143A Data.WALS.F143A.NegVerbOrder.opttriplenegObligdoubleneg = Typology.Negation.NegVerbPosition.tripleNeg
- Typology.Negation.fromWALS143A Data.WALS.F143A.NegVerbOrder.opttriplenegOptdoubleneg = Typology.Negation.NegVerbPosition.tripleNeg
Instances For
Build a NegationSystem for a language identified by ISO 639-3 code,
pulling F112A / F143A / F144A values from the Data.WALS data.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Does a language use a given morpheme type?
Equations
- p.hasMorphemeType t = (p.morphemeType == t)
Instances For
Does a language have symmetric negation (either symmetric only or both)?
Equations
Instances For
Does a language have asymmetric negation (either asymmetric only or both)?
Equations
Instances For
Does a language show negative concord?
Equations
Instances For
Count of languages in a sample with a given morpheme type.
Equations
- Typology.Negation.countByMorphemeType langs t = (List.filter (fun (x : Typology.Negation.NegationProfile) => x.hasMorphemeType t) langs).length
Instances For
Count of languages in a sample with a given symmetry type.
Equations
- Typology.Negation.countBySymmetry langs s = (List.filter (fun (x : Typology.Negation.NegationProfile) => x.symmetry == s) langs).length
Instances For
Ch 112: negative particles outnumber negative affixes.
Ch 112: negative auxiliary verbs are rare (< 5% of sample).
Ch 113: SymAsy (both) is the most common type, followed by Sym, then Asy.
Ch 114: A/Cat is the most common single asymmetry subtype, then A/Fin, then A/NonReal.
Ch 115: negative concord (co-occurrence) outnumbers preclusion by 15×.
Ch 115: preclusion of predicate negation is the rarest strategy.
Ch 143A: preverbal negation (particle or affix) dominates postverbal.
Ch 144B: immediately preverbal is the most common position for negative words.