Gender — feature decompositions of the labels #
[Smi15] [Smi21] [Kra15] [AA25] [Ham19]
Rival feature analyses of gender values. None is baked into Gender.System
— the carrier is analysis-neutral, and each scheme here is a presentation a
study can adopt or refute.
- The split-feature architecture ([Smi15]; book version
[Smi21]): a grammatical feature has two halves —
uFlegible to morphology,iFlegible to semantics — which "in general match up" but "can be distinct or one can be missing altogether".SplitFeature Vencodes this for any value vocabulary. [Kra15]'s interpretability classification falls out as the special cases (IsNatural,IsArbitrary), and hybrid values (IsHybrid— [Smi21]'s mismatch zoo: committee-type collectives for number, Russian profession nouns for gender, Hebrew be'alim, Chichewa heroes) are exactly what the special cases cannot represent. - Kramer's gender calculus ([Kra15]): valued gender features
are signed binary dimensions (
SignedoverDimension— FEM, ANIM, and [Ada24]'s MASC), whosesurfacelabels underdetermine them (Signed.surface_femNeg_eq_mascPos). The interpretability-annotated FEM slice isKramerN= {plain, i[±FEM], u[±FEM]}. Natural and arbitrary gender differ only in interpretability and receive the same exponence at PF (KramerN.exponence), which yields the calculus's signature limit, here a theorem (KramerN.card_image_exponence_le_three): no inventory of gender-relevant ns distinguishes more than three agreement classes — Kramer's own argument that >3-gender systems need per-class identity features, i.e. a language-particular carrier (Gender.System).
Implementation notes #
SplitFeatureis φ-generic (its motivating mismatch, committee uF:SG × iF:PL, is a number value): it lives here until a second feature module consumes it, then hoists to a shared file.- The bivalent [±feminine, ±neuter] presentation ([Sau03]):
Gender.Features, aContainmentPairLikelabel scheme for sex-based three-gender systems — one edge of the φ-feature iso-web (phiKernelEquiv, Studies/Harbour2016.lean), parallel toPerson.FeaturesandNumber.Features. Itsno_fourth_genderis a claim about this scheme, not about gender writ large (Fula has 20 controller genders). - [Ham19] rejects both interpretability schemes (masculine = bare
GENDER node, no masculine feature; natural/arbitrary derived at LF, not
represented) — a single-paper analysis, so it belongs in
Studies/Hammerly2019.lean, stated over the sameGender.Systemcarriers as its rivals.
The split-feature architecture #
A feature split into a morphology-legible half uF and a
semantics-legible half iF ([Smi15]). The halves usually match,
but may differ (hybrid values) or be singly absent.
- uF : Option V
The half legible to morphology (agreement, exponence).
- iF : Option V
The half legible to semantics (interpretation).
Instances For
Equations
- Gender.instDecidableEqSplitFeature.decEq { uF := a, iF := a_1 } { uF := b, iF := b_1 } = if h : a = b then h ▸ if h : a_1 = b_1 then h ▸ isTrue ⋯ else isFalse ⋯ else isFalse ⋯
Instances For
Equations
- Gender.instReprSplitFeature = { reprPrec := Gender.instReprSplitFeature.repr }
Equations
- One or more equations did not get rendered due to their size.
Instances For
Natural (conceptual) value: both halves present and matched — [Kra15]'s interpretable gender in split-feature terms.
Instances For
Arbitrary value: morphological half only — [Kra15]'s uninterpretable gender in split-feature terms.
Equations
- s.IsArbitrary = ((∃ (v : V), s.uF = some v) ∧ s.iF = none)
Instances For
Semantic-only value: interpreted but morphologically inert (the half [Smi15] allows to go missing on the uF side).
Equations
- s.IsSemanticOnly = (s.uF = none ∧ ∃ (v : V), s.iF = some v)
Instances For
Hybrid value: both halves present and mismatched — committee-type nouns ([Smi15]); unrepresentable in an interpretability classification of single feature tokens.
Instances For
Featureless: both halves absent.
Instances For
The five cases are exhaustive: every split feature is natural, hybrid, arbitrary, semantic-only, or absent.
A hybrid value is not natural: the mismatch is real.
The bivalent presentation: [±feminine, ±neuter] #
[Sau03]'s decomposition of sex-based gender:
[±feminine] (feminine and neuter are [+feminine]) and [±neuter]
(only neuter is [+neuter]), with the containment [+neuter] → [+feminine]:
neuter is the most specified gender (like singular for number, 1st for
person) and masculine the least. The three well-formed combinations are the
three genders of a sex-based system; the scheme parallels person
[±author] ⊂ [±participant] and number [±atomic] ⊂ [±minimal] — all three are
ContainmentPairLike presentations of the same skeleton
(Features/ContainmentPair.lean).
Bivalent gender features: [±feminine, ±neuter] ([Sau03]).
The three well-formed combinations yield the three sex-based genders: neuter [+feminine, +neuter], feminine [+feminine, −neuter], masculine [−feminine, −neuter].
- isFeminine : Bool
[+feminine]: referent triggers feminine (or neuter) agreement.
- isNeuter : Bool
[+neuter]: referent triggers neuter agreement.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- Gender.instReprFeatures = { reprPrec := Gender.instReprFeatures.repr }
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- Gender.instFintypeFeatures = Fintype.ofEquiv ((_ : Bool) × Bool) Gender.Features.proxyTypeEquiv
Neuter features: [+feminine, +neuter].
Equations
- Gender.neuterF = { isFeminine := true, isNeuter := true }
Instances For
Feminine features: [+feminine, −neuter].
Equations
- Gender.feminineF = { isFeminine := true, isNeuter := false }
Instances For
Masculine features: [−feminine, −neuter].
Equations
- Gender.masculineF = { isFeminine := false, isNeuter := false }
Instances For
The [±feminine, ±neuter] decomposition is carrier-equivalent to the
containment pair: outer = feminine, inner = neuter — one edge of the
φ-feature iso-web (phiKernelEquiv, Studies/Harbour2016.lean).
Equations
- One or more equations did not get rendered due to their size.
Instances For
The three canonical gender values land on the three well-formed cells.
Well-formedness: [+neuter] → [+feminine] — neuter entails feminine in
the feature geometry, inherited from ContainmentPair.WellFormed.
Equations
Instances For
No 4-way distinction within this scheme (inherited from
ContainmentPairLike.no_four_way) — a claim about the sex-based
bivalent presentation, not about gender systems writ large.
The filtered combination [−feminine, +neuter] is the only one that violates containment.
Exactly 3 well-formed feature combinations (= 3 genders) — the carrier
count of the containment chain (ContainmentPair.card_wellFormed).
Containment: [+neuter] → [+feminine] for all well-formed features.
Map gender features to the comparative labels.
Equations
- { isFeminine := true, isNeuter := true }.toGender = some Gender.neuter
- { isFeminine := true, isNeuter := false }.toGender = some Gender.feminine
- { isFeminine := false, isNeuter := false }.toGender = some Gender.masculine
- { isFeminine := false, isNeuter := true }.toGender = none
Instances For
Map comparative labels to gender features (partial — only sex-based labels have feature equivalents).
Equations
Instances For
Round-trip: fromGender ∘ toGender = some for all well-formed
features.
Dimensions and signed features #
Kramer's calculus ranges over language-particular binary dimensions:
[±FEM] (Amharic, Spanish, Maa), [±ANIM] (Lealao Chinantec, Algonquian,
Teop), and [Ada24]'s [±MASC] (Jarawara). A signed dimension is a
valued gender feature, and its surface is the comparative label of the
chosen pole. KramerN below is the interpretability-annotated FEM
slice.
Equations
- Gender.instDecidableEqDimension x✝ y✝ = if h : x✝.ctorIdx = y✝.ctorIdx then isTrue ⋯ else isFalse ⋯
Equations
- Gender.instReprDimension = { reprPrec := Gender.instReprDimension.repr }
Equations
- Gender.instReprDimension.repr Gender.Dimension.fem prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ ≥ 1024 then 1 else 2) (Std.Format.text "Gender.Dimension.fem")).group prec✝
- Gender.instReprDimension.repr Gender.Dimension.masc prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ ≥ 1024 then 1 else 2) (Std.Format.text "Gender.Dimension.masc")).group prec✝
- Gender.instReprDimension.repr Gender.Dimension.anim prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ ≥ 1024 then 1 else 2) (Std.Format.text "Gender.Dimension.anim")).group prec✝
Instances For
Equations
- Gender.instFintypeDimension = { elems := { val := ↑Gender.Dimension.enumList, nodup := Gender.Dimension.enumList_nodup }, complete := Gender.instFintypeDimension._proof_1 }
Equations
- Gender.instDecidableEqPole x✝ y✝ = if h : x✝.ctorIdx = y✝.ctorIdx then isTrue ⋯ else isFalse ⋯
Equations
- Gender.instReprPole = { reprPrec := Gender.instReprPole.repr }
Equations
- Gender.instReprPole.repr Gender.Pole.pos prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ ≥ 1024 then 1 else 2) (Std.Format.text "Gender.Pole.pos")).group prec✝
- Gender.instReprPole.repr Gender.Pole.neg prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ ≥ 1024 then 1 else 2) (Std.Format.text "Gender.Pole.neg")).group prec✝
Instances For
Equations
- Gender.instFintypePole = { elems := { val := ↑Gender.Pole.enumList, nodup := Gender.Pole.enumList_nodup }, complete := Gender.instFintypePole._proof_1 }
The comparative label at a dimension's positive pole.
Equations
Instances For
The comparative label at a dimension's negative pole.
Equations
Instances For
A valued gender feature: a dimension with a sign — [+FEM], [−FEM], [+ANIM], and so on.
Instances For
Equations
- Gender.instDecidableEqSigned.decEq { dim := a, pole := a_1 } { dim := b, pole := b_1 } = if h : a = b then h ▸ if h : a_1 = b_1 then h ▸ isTrue ⋯ else isFalse ⋯ else isFalse ⋯
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- Gender.instReprSigned = { reprPrec := Gender.instReprSigned.repr }
Equations
- Gender.instFintypeSigned = Fintype.ofEquiv ((_ : Gender.Dimension) × Gender.Pole) Gender.Signed.proxyTypeEquiv
The comparative label a valued feature denotes: the pole its sign picks.
Equations
- v.surface = match v.pole with | Gender.Pole.pos => v.dim.positive | Gender.Pole.neg => v.dim.negative
Instances For
Surface labels underdetermine features: Maa's [−FEM] and Jarawara's [+MASC] both surface masculine ([Kra15] §6.3 vs [Ada24] §3.2) — drawing the featural distinction is what the dimension inventory is for.
The canonical numbering of the six valued features — the encoding consumers with numeral gender slots (the Minimalist φ-interface) use.
Equations
- { dim := Gender.Dimension.fem, pole := Gender.Pole.pos }.toNat = 0
- { dim := Gender.Dimension.fem, pole := Gender.Pole.neg }.toNat = 1
- { dim := Gender.Dimension.masc, pole := Gender.Pole.pos }.toNat = 2
- { dim := Gender.Dimension.masc, pole := Gender.Pole.neg }.toNat = 3
- { dim := Gender.Dimension.anim, pole := Gender.Pole.pos }.toNat = 4
- { dim := Gender.Dimension.anim, pole := Gender.Pole.neg }.toNat = 5
Instances For
Kramer's gender calculus and its three-gender bound #
A gender-relevant nominalizing head in [Kra15]'s calculus: plain n, or n bearing an interpretable or uninterpretable [±FEM].
- plain : KramerN
n with no gender features (Romanian default-gender nouns).
- iFem : KramerN
n i[+FEM]: interpretable feminine (natural gender).
- iMasc : KramerN
n i[−FEM]: interpretable masculine (natural gender).
- uFem : KramerN
n u[+FEM]: uninterpretable feminine (arbitrary gender).
- uMasc : KramerN
n u[−FEM]: uninterpretable masculine (arbitrary gender).
Instances For
Equations
- Gender.instDecidableEqKramerN x✝ y✝ = if h : x✝.ctorIdx = y✝.ctorIdx then isTrue ⋯ else isFalse ⋯
Equations
- Gender.instReprKramerN = { reprPrec := Gender.instReprKramerN.repr }
Equations
- Gender.instReprKramerN.repr Gender.KramerN.plain prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ ≥ 1024 then 1 else 2) (Std.Format.text "Gender.KramerN.plain")).group prec✝
- Gender.instReprKramerN.repr Gender.KramerN.iFem prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ ≥ 1024 then 1 else 2) (Std.Format.text "Gender.KramerN.iFem")).group prec✝
- Gender.instReprKramerN.repr Gender.KramerN.iMasc prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ ≥ 1024 then 1 else 2) (Std.Format.text "Gender.KramerN.iMasc")).group prec✝
- Gender.instReprKramerN.repr Gender.KramerN.uFem prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ ≥ 1024 then 1 else 2) (Std.Format.text "Gender.KramerN.uFem")).group prec✝
- Gender.instReprKramerN.repr Gender.KramerN.uMasc prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ ≥ 1024 then 1 else 2) (Std.Format.text "Gender.KramerN.uMasc")).group prec✝
Instances For
Equations
- Gender.instFintypeKramerN = { elems := { val := ↑Gender.KramerN.enumList, nodup := Gender.KramerN.enumList_nodup }, complete := Gender.instFintypeKramerN._proof_1 }
What agreement exponence sees: the feature value, not its
interpretability — natural and arbitrary gender receive the same
Vocabulary Item ([Kra15]). none = no gender features.
Equations
- Gender.KramerN.plain.exponence = none
- Gender.KramerN.iFem.exponence = some true
- Gender.KramerN.uFem.exponence = some true
- Gender.KramerN.iMasc.exponence = some false
- Gender.KramerN.uMasc.exponence = some false
Instances For
Each Kramer head reads as a split feature: interpretable heads value both halves, uninterpretable heads only the morphological half.
Equations
- Gender.KramerN.plain.toSplitFeature = { uF := none, iF := none }
- Gender.KramerN.iFem.toSplitFeature = { uF := some true, iF := some true }
- Gender.KramerN.iMasc.toSplitFeature = { uF := some false, iF := some false }
- Gender.KramerN.uFem.toSplitFeature = { uF := some true, iF := none }
- Gender.KramerN.uMasc.toSplitFeature = { uF := some false, iF := none }
Instances For
The calculus generates no hybrids: every Kramer head is natural, arbitrary, or absent in split-feature terms — the representational gap [Smi15]'s architecture closes.
[Kra15]'s three-gender bound, as a theorem: any inventory of
gender-relevant ns distinguishes at most three agreement classes
([+FEM], [−FEM], bare). More than three genders therefore requires
machinery beyond the calculus — per-class identity features, i.e. a
language-particular Gender.System carrier.