Features for Minimalist Agree #
A feature dimension is a kind of feature that Agree checks: an agreement dimension
(Agreement.Dimension), one of Harbour's person or number features (Person.Feature,
Number.Feature), or a Minimalist feature such as [±wh]. Each takes its values from the type
that already owns it, so the person dimension here is the person of an agreement bundle, and
Harbour's features are bivalent. A feature value is a dimension with a value in it, and two
values share a dimension when their first components agree. A feature bundle assigns each
dimension a three-state checking slot: absent, unvalued (a probe), or valued.
Interpretability is orthogonal to valuation. Chomsky's interpretable features contribute to LF (the φ-features of a noun, categorial features), and uninterpretable ones must be checked and deleted before it (the φ-features of T and v, the case of a noun); which a feature is depends on its host as well as its dimension.
Main definitions #
Minimalist.FeatureType,Minimalist.FeatureType.ValueOf— the dimensions and their valuesMinimalist.FeatureVal— a dimension with a valueMinimalist.FeatureBundle— a checking slot at each dimension, withofList,toListandvaluedMinimalist.Interpretability— ±interpretable
References #
Equations
- Minimalist.instReprInfl = { reprPrec := Minimalist.instReprInfl.repr }
Equations
- Minimalist.instReprInfl.repr Minimalist.Infl.perf prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ ≥ 1024 then 1 else 2) (Std.Format.text "Minimalist.Infl.perf")).group prec✝
- Minimalist.instReprInfl.repr Minimalist.Infl.impf prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ ≥ 1024 then 1 else 2) (Std.Format.text "Minimalist.Infl.impf")).group prec✝
Instances For
Equations
- Minimalist.instDecidableEqInfl x✝ y✝ = if h : x✝.ctorIdx = y✝.ctorIdx then isTrue ⋯ else isFalse ⋯
Dimensions and values #
The feature dimensions Agree checks are the agreement dimensions, Harbour's person and number features, and the Minimalist [±wh], [±tense], [Infl] and [obl].
- agr (d : Agreement.Dimension) : FeatureType
- personFeature (f : Person.Feature) : FeatureType
- numberFeature (f : Number.Feature) : FeatureType
- wh : FeatureType
- tense : FeatureType
- infl : FeatureType
- oblique : FeatureType
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- Minimalist.instReprFeatureType = { reprPrec := Minimalist.instReprFeatureType.repr }
Equations
- Minimalist.instDecidableEqFeatureType.decEq (Minimalist.FeatureType.agr a) (Minimalist.FeatureType.agr b) = if h : a = b then h ▸ isTrue ⋯ else isFalse ⋯
- Minimalist.instDecidableEqFeatureType.decEq (Minimalist.FeatureType.agr d) (Minimalist.FeatureType.personFeature f) = isFalse ⋯
- Minimalist.instDecidableEqFeatureType.decEq (Minimalist.FeatureType.agr d) (Minimalist.FeatureType.numberFeature f) = isFalse ⋯
- Minimalist.instDecidableEqFeatureType.decEq (Minimalist.FeatureType.agr d) Minimalist.FeatureType.wh = isFalse ⋯
- Minimalist.instDecidableEqFeatureType.decEq (Minimalist.FeatureType.agr d) Minimalist.FeatureType.tense = isFalse ⋯
- Minimalist.instDecidableEqFeatureType.decEq (Minimalist.FeatureType.agr d) Minimalist.FeatureType.infl = isFalse ⋯
- Minimalist.instDecidableEqFeatureType.decEq (Minimalist.FeatureType.agr d) Minimalist.FeatureType.oblique = isFalse ⋯
- Minimalist.instDecidableEqFeatureType.decEq (Minimalist.FeatureType.personFeature f) (Minimalist.FeatureType.agr d) = isFalse ⋯
- Minimalist.instDecidableEqFeatureType.decEq (Minimalist.FeatureType.personFeature a) (Minimalist.FeatureType.personFeature b) = if h : a = b then h ▸ isTrue ⋯ else isFalse ⋯
- Minimalist.instDecidableEqFeatureType.decEq (Minimalist.FeatureType.personFeature f) (Minimalist.FeatureType.numberFeature f_1) = isFalse ⋯
- Minimalist.instDecidableEqFeatureType.decEq (Minimalist.FeatureType.personFeature f) Minimalist.FeatureType.wh = isFalse ⋯
- Minimalist.instDecidableEqFeatureType.decEq (Minimalist.FeatureType.personFeature f) Minimalist.FeatureType.tense = isFalse ⋯
- Minimalist.instDecidableEqFeatureType.decEq (Minimalist.FeatureType.personFeature f) Minimalist.FeatureType.infl = isFalse ⋯
- Minimalist.instDecidableEqFeatureType.decEq (Minimalist.FeatureType.personFeature f) Minimalist.FeatureType.oblique = isFalse ⋯
- Minimalist.instDecidableEqFeatureType.decEq (Minimalist.FeatureType.numberFeature f) (Minimalist.FeatureType.agr d) = isFalse ⋯
- Minimalist.instDecidableEqFeatureType.decEq (Minimalist.FeatureType.numberFeature f) (Minimalist.FeatureType.personFeature f_1) = isFalse ⋯
- Minimalist.instDecidableEqFeatureType.decEq (Minimalist.FeatureType.numberFeature a) (Minimalist.FeatureType.numberFeature b) = if h : a = b then h ▸ isTrue ⋯ else isFalse ⋯
- Minimalist.instDecidableEqFeatureType.decEq (Minimalist.FeatureType.numberFeature f) Minimalist.FeatureType.wh = isFalse ⋯
- Minimalist.instDecidableEqFeatureType.decEq (Minimalist.FeatureType.numberFeature f) Minimalist.FeatureType.tense = isFalse ⋯
- Minimalist.instDecidableEqFeatureType.decEq (Minimalist.FeatureType.numberFeature f) Minimalist.FeatureType.infl = isFalse ⋯
- Minimalist.instDecidableEqFeatureType.decEq (Minimalist.FeatureType.numberFeature f) Minimalist.FeatureType.oblique = isFalse ⋯
- Minimalist.instDecidableEqFeatureType.decEq Minimalist.FeatureType.wh (Minimalist.FeatureType.agr d) = isFalse ⋯
- Minimalist.instDecidableEqFeatureType.decEq Minimalist.FeatureType.wh (Minimalist.FeatureType.personFeature f) = isFalse ⋯
- Minimalist.instDecidableEqFeatureType.decEq Minimalist.FeatureType.wh (Minimalist.FeatureType.numberFeature f) = isFalse ⋯
- Minimalist.instDecidableEqFeatureType.decEq Minimalist.FeatureType.wh Minimalist.FeatureType.wh = isTrue ⋯
- Minimalist.instDecidableEqFeatureType.decEq Minimalist.FeatureType.wh Minimalist.FeatureType.tense = isFalse Minimalist.instDecidableEqFeatureType.decEq._proof_27
- Minimalist.instDecidableEqFeatureType.decEq Minimalist.FeatureType.wh Minimalist.FeatureType.infl = isFalse Minimalist.instDecidableEqFeatureType.decEq._proof_28
- Minimalist.instDecidableEqFeatureType.decEq Minimalist.FeatureType.wh Minimalist.FeatureType.oblique = isFalse Minimalist.instDecidableEqFeatureType.decEq._proof_29
- Minimalist.instDecidableEqFeatureType.decEq Minimalist.FeatureType.tense (Minimalist.FeatureType.agr d) = isFalse ⋯
- Minimalist.instDecidableEqFeatureType.decEq Minimalist.FeatureType.tense (Minimalist.FeatureType.personFeature f) = isFalse ⋯
- Minimalist.instDecidableEqFeatureType.decEq Minimalist.FeatureType.tense (Minimalist.FeatureType.numberFeature f) = isFalse ⋯
- Minimalist.instDecidableEqFeatureType.decEq Minimalist.FeatureType.tense Minimalist.FeatureType.wh = isFalse Minimalist.instDecidableEqFeatureType.decEq._proof_33
- Minimalist.instDecidableEqFeatureType.decEq Minimalist.FeatureType.tense Minimalist.FeatureType.tense = isTrue ⋯
- Minimalist.instDecidableEqFeatureType.decEq Minimalist.FeatureType.tense Minimalist.FeatureType.infl = isFalse Minimalist.instDecidableEqFeatureType.decEq._proof_34
- Minimalist.instDecidableEqFeatureType.decEq Minimalist.FeatureType.tense Minimalist.FeatureType.oblique = isFalse Minimalist.instDecidableEqFeatureType.decEq._proof_35
- Minimalist.instDecidableEqFeatureType.decEq Minimalist.FeatureType.infl (Minimalist.FeatureType.agr d) = isFalse ⋯
- Minimalist.instDecidableEqFeatureType.decEq Minimalist.FeatureType.infl (Minimalist.FeatureType.personFeature f) = isFalse ⋯
- Minimalist.instDecidableEqFeatureType.decEq Minimalist.FeatureType.infl (Minimalist.FeatureType.numberFeature f) = isFalse ⋯
- Minimalist.instDecidableEqFeatureType.decEq Minimalist.FeatureType.infl Minimalist.FeatureType.wh = isFalse Minimalist.instDecidableEqFeatureType.decEq._proof_39
- Minimalist.instDecidableEqFeatureType.decEq Minimalist.FeatureType.infl Minimalist.FeatureType.tense = isFalse Minimalist.instDecidableEqFeatureType.decEq._proof_40
- Minimalist.instDecidableEqFeatureType.decEq Minimalist.FeatureType.infl Minimalist.FeatureType.infl = isTrue ⋯
- Minimalist.instDecidableEqFeatureType.decEq Minimalist.FeatureType.infl Minimalist.FeatureType.oblique = isFalse Minimalist.instDecidableEqFeatureType.decEq._proof_41
- Minimalist.instDecidableEqFeatureType.decEq Minimalist.FeatureType.oblique (Minimalist.FeatureType.agr d) = isFalse ⋯
- Minimalist.instDecidableEqFeatureType.decEq Minimalist.FeatureType.oblique (Minimalist.FeatureType.personFeature f) = isFalse ⋯
- Minimalist.instDecidableEqFeatureType.decEq Minimalist.FeatureType.oblique (Minimalist.FeatureType.numberFeature f) = isFalse ⋯
- Minimalist.instDecidableEqFeatureType.decEq Minimalist.FeatureType.oblique Minimalist.FeatureType.wh = isFalse Minimalist.instDecidableEqFeatureType.decEq._proof_45
- Minimalist.instDecidableEqFeatureType.decEq Minimalist.FeatureType.oblique Minimalist.FeatureType.tense = isFalse Minimalist.instDecidableEqFeatureType.decEq._proof_46
- Minimalist.instDecidableEqFeatureType.decEq Minimalist.FeatureType.oblique Minimalist.FeatureType.infl = isFalse Minimalist.instDecidableEqFeatureType.decEq._proof_47
- Minimalist.instDecidableEqFeatureType.decEq Minimalist.FeatureType.oblique Minimalist.FeatureType.oblique = isTrue ⋯
Instances For
Equations
- Minimalist.instFintypeFeatureType = Fintype.ofEquiv (Agreement.Dimension ⊕ Person.Feature ⊕ Number.Feature ⊕ Unit ⊕ Unit ⊕ Unit ⊕ Unit) Minimalist.FeatureType.proxyTypeEquiv
author is Harbour's [±author].
All feature dimensions, for computable enumeration (Finset.univ.toList is
noncomputable).
Equations
- One or more equations did not get rendered due to their size.
Instances For
Every dimension is listed in all.
The value type of a dimension is that of the agreement dimension it is, [Infl]'s values, or
Bool for the bivalent features.
Equations
- (Minimalist.FeatureType.agr d).ValueOf = d.Value
- (Minimalist.FeatureType.personFeature f).ValueOf = Bool
- (Minimalist.FeatureType.numberFeature f).ValueOf = Bool
- Minimalist.FeatureType.infl.ValueOf = Minimalist.Infl
- Minimalist.FeatureType.wh.ValueOf = Bool
- Minimalist.FeatureType.tense.ValueOf = Bool
- Minimalist.FeatureType.oblique.ValueOf = Bool
Instances For
Equations
- One or more equations did not get rendered due to their size.
Equations
- One or more equations did not get rendered due to their size.
A feature value is a dimension with a value in it, written ⟨.person, .first⟩.
Equations
- Minimalist.FeatureVal = ((t : Minimalist.FeatureType) × t.ValueOf)
Instances For
Feature bundles #
A feature bundle is a total assignment from the dimensions to three-state checking slots
(Minimalist.FeatureSlot), absent, unvalued or valued, after [MCB25],
whose free-Merge core keeps the features of a syntactic object atomic, so the slots are an
Agree-layer structure decoupled from the SyntacticObject carrier.
A feature bundle assigns each dimension a checking slot.
Equations
Instances For
The bundle has a valued feature of the given dimension.
Equations
- a.hasValuedFeature t = (a t).isValued
Instances For
The bundle has an unvalued (probe) feature of the given dimension.
Equations
- a.hasUnvaluedFeature t = (a t).isUnvalued
Instances For
The value at the given dimension, when valued.
Equations
- a.getValuedFeature t = (a t).value?
Instances For
The assignment specifying exactly one valued dimension, all others absent.
Equations
- Minimalist.FeatureBundle.single t v = Function.update ⊥ t (Minimalist.FeatureSlot.valued v)
Instances For
The bundle read off a list of slots, the list head winning on a repeated dimension.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The specified slots of a bundle, in FeatureType.all order.
Equations
- b.toList = List.filterMap (fun (t : Minimalist.FeatureType) => if (b t).isSpecified = true then some ⟨t, b t⟩ else none) Minimalist.FeatureType.all
Instances For
The valued features of a bundle, in FeatureType.all order.
Equations
- b.valued = List.filterMap (fun (t : Minimalist.FeatureType) => Option.map (fun (x : t.ValueOf) => ⟨t, x⟩) (b t).value?) Minimalist.FeatureType.all
Instances For
The everywhere-absent bundle is the default.
Equations
- Minimalist.FeatureBundle.instInhabited = { default := ⊥ }
Equations
- Minimalist.FeatureBundle.instDecidableEq a b = Fintype.decidablePiFintype a b
A bundle is rendered by its specified (non-absent) dimensions. The function carrier has no
structural Repr, so containing structures that deriving Repr rely on this.
Equations
- One or more equations did not get rendered due to their size.
Interpretability #
A feature is interpretable when it contributes to LF and uninterpretable when it must be checked and deleted before LF ([Cho95b]). The distinction is orthogonal to valuation: the φ-features of a noun are interpretable and valued, those of T and v uninterpretable and unvalued.
- interpretable : Interpretability
- uninterpretable : Interpretability
Instances For
Equations
- Minimalist.instReprInterpretability = { reprPrec := Minimalist.instReprInterpretability.repr }
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- Minimalist.instDecidableEqInterpretability x✝ y✝ = if h : x✝.ctorIdx = y✝.ctorIdx then isTrue ⋯ else isFalse ⋯