Pronoun capabilities #
Typeclass mixins for pronoun-like carriers. A carrier may be a lexical record
(Pronoun, PersonalPronoun) or a surface token (Word); a consumer requires
exactly the axes it touches.
Main declarations #
Proform— a pro-form takes its antecedents from a fixed form-class, its domain ([Blo33]);Proform.CandidateAntecedentis derived — domain membership plus φ-agreement (HasPhi.Agree, fromFeatures/Phi.lean).Bound,HasNumber,HasPerson,HasCase,HasGenderinstances for the pronoun carriers.bindingClassOf_toWord,numberOf_toWord,personOf_toWord,caseOf_toWord,genderOf_toWord—Pronoun.toWordcommutes with each axis, up to what UD realization can express: clusivity, minimal/augmented number, and animacy-based gender are lost; case and binding class are preserved.
Implementation notes #
Word-class-neutral capabilities live with their domains: Indefinite in
Features/Indefinite.lean, Bound in Features/CoreferenceStatus.lean.
Three axes are fields, not classes: deficiency (Pronoun.strength, per-series
[cardinaletti-starke-1999]), lexical kind (Pronoun.pronType, UD morphology),
and register/referential person (PersonalPronoun fields, borne by one
carrier).
Proform.CandidateAntecedent is token-level: whether an anaphoric site is a
bare pro-form or hosts deleted structure ([hankamer-sag-1976]; [baltin-2012])
is a theory question for study files.
φ instances and the pro-form #
Equations
- instHasPhiPersonalPronoun = { phi := fun (p : PersonalPronoun) => p.toWord.phi }
A candidate antecedent for a pro-form is a domain member that φ-agrees with it.
Equations
- Proform.CandidateAntecedent a w = (Proform.Domain a w ∧ HasPhi.Agree a w)
Instances For
A candidate antecedent φ-agrees with its pro-form.
A pronoun's domain is the nominal tokens.
Equations
- instProformPronoun = { Domain := fun (x : Pronoun) (w : Morphology.Word) => Binding.isNominalCat w.cat = true }
Equations
- instProformPersonalPronoun = { Domain := fun (x : PersonalPronoun) (w : Morphology.Word) => Binding.isNominalCat w.cat = true }
Equations
- instDecidableDomainPronoun p w = instDecidableEqBool (Binding.isNominalCat w.cat) true
Equations
- instDecidableDomainPersonalPronoun p w = instDecidableEqBool (Binding.isNominalCat w.cat) true
Equations
- instDecidableCandidateAntecedentOfDomain a w = id inferInstance
A bare Pronoun's class is its declared bindingClass; an undeclared
φ-shell defaults to Principle-B .pronoun ([chomsky-1981]'s elsewhere case).
Equations
- instBoundPronoun = { bindingClass := fun (p : Pronoun) => p.bindingClass.getD Features.BindingClass.pronoun }
Equations
- instBoundPersonalPronoun = { bindingClass := fun (p : PersonalPronoun) => p.bindingClass.getD Features.BindingClass.pronoun }
A pronoun's projected word classifies (Binding.bindingClassOf) exactly as
its Bound class.
Equations
- instHasNumberPronoun = { numberOf := fun (p : Pronoun) => p.number }
Equations
- instHasNumberPersonalPronoun = { numberOf := fun (p : PersonalPronoun) => numberOf p.toPronoun }
A pronoun's number survives projection to Word exactly on UD-expressible
values; the minimal/augmented values are lost, since Number.toUD is partial.
Equations
- instHasPersonPronoun = { personOf := fun (p : Pronoun) => p.person }
Equations
- instHasPersonPersonalPronoun = { personOf := fun (p : PersonalPronoun) => personOf p.toPronoun }
Projection to Word coarsens person, since UD realization has no
clusivity.
Equations
- instHasCasePronoun = { caseOf := fun (p : Pronoun) => p.case_ }
Equations
- instHasCasePersonalPronoun = { caseOf := fun (p : PersonalPronoun) => caseOf p.toPronoun }
Equations
- instHasGenderPronoun = { genderOf := fun (p : Pronoun) => p.gender }
Equations
- instHasGenderPersonalPronoun = { genderOf := fun (p : PersonalPronoun) => genderOf p.toPronoun }
A pronoun's gender survives projection to Word exactly on UD-expressible
values; the animacy-based labels are lost, since Gender.toUD is partial.