Feature bundles #
This file defines the dimensions in which agreement targets covary and the analytical feature bundle over them, a value or nothing in each dimension.
An agreement bundle gives each dimension a slot of the flat order of Core/Order/Flat.lean, so
its partial order, its bottom, the wholly unspecified bundle, and its unification are the
pointwise ones. Each dimension is a token feature with that feature's values, and a token's
bundle is its features read along that inclusion, Agreement.Bundle.ofFeatures.
Main definitions #
Agreement.Dimension— the five dimensions a target's form may covary inAgreement.Dimension.toFeature,Agreement.Dimension.Value— the token feature a dimension is, and its valuesAgreement.Bundle— a value or⊥in each dimensionAgreement.Bundle.set,Agreement.Bundle.personNumber— a bundle with one dimension set, and the bundle valued in person and number aloneAgreement.Bundle.ofFeatures— the restriction of a token's features
References #
A dimension is a feature in which a target's form may covary with another element, one of the three indisputable agreement features or the two contested ones ([Cor98]).
Instances For
Equations
- Agreement.instDecidableEqDimension x✝ y✝ = if h : x✝.ctorIdx = y✝.ctorIdx then isTrue ⋯ else isFalse ⋯
Equations
- Agreement.instReprDimension = { reprPrec := Agreement.instReprDimension.repr }
Equations
- One or more equations did not get rendered due to their size.
- Agreement.instReprDimension.repr Agreement.Dimension.person prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ ≥ 1024 then 1 else 2) (Std.Format.text "Agreement.Dimension.person")).group prec✝
- Agreement.instReprDimension.repr Agreement.Dimension.number prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ ≥ 1024 then 1 else 2) (Std.Format.text "Agreement.Dimension.number")).group prec✝
- Agreement.instReprDimension.repr Agreement.Dimension.gender prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ ≥ 1024 then 1 else 2) (Std.Format.text "Agreement.Dimension.gender")).group prec✝
- Agreement.instReprDimension.repr Agreement.Dimension.case prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ ≥ 1024 then 1 else 2) (Std.Format.text "Agreement.Dimension.case")).group prec✝
Instances For
Equations
- Agreement.instFintypeDimension = { elems := { val := ↑Agreement.Dimension.enumList, nodup := Agreement.Dimension.enumList_nodup }, complete := Agreement.instFintypeDimension._proof_1 }
The token feature a dimension is. It is reducible, so that the values of a dimension reduce to those of its feature when coercions are sought.
Equations
- Agreement.Dimension.person.toFeature = Morphology.Feature.person
- Agreement.Dimension.number.toFeature = Morphology.Feature.number
- Agreement.Dimension.gender.toFeature = Morphology.Feature.gender
- Agreement.Dimension.case.toFeature = Morphology.Feature.case
- Agreement.Dimension.definiteness.toFeature = Morphology.Feature.definiteness
Instances For
Equations
- One or more equations did not get rendered due to their size.
A feature bundle assigns each dimension a value or ⊥.
Equations
- Agreement.Bundle = ((d : Agreement.Dimension) → Flat d.Value)
Instances For
The bundle with the dimension d set to the value v.
Equations
- Agreement.Bundle.set d v b = Function.update b d (some v)
Instances For
The bundle valued in person and number alone.
Equations
Instances For
The restriction of a token's features to the agreement dimensions reads them along
Dimension.toFeature.
Equations
- Agreement.Bundle.ofFeatures f d = f d.toFeature
Instances For
Equations
- One or more equations did not get rendered due to their size.