Cyclic Agree over articulated person probes #
Person is decomposed into the privative segments of Minimalist.PersonSegment. Every person
bears π, speech-act participants also participant, and the innermost segments speaker and
addressee distinguish first from second person according to a geometry, which fixes which
segments a language uses. A probe is a list of unvalued segments. A probe on v first meets the
internal argument and checks every segment it bears; the segments left over, its residue, probe
again from the next projection of v, where the external argument is the closest goal. The context
is direct when the external argument checks some residue, and inverse otherwise, when the core
probe never Agrees with it and its person goes unlicensed. A context is a scenario
(Clause.Scenario) of the external over the internal argument, and under a chain geometry it is
direct exactly when it is downstream on the number of probe segments each person bears.
Main definitions #
Minimalist.CyclicAgree.PersonGeometry: the standard, addressee and branching geometries.Minimalist.CyclicAgree.personSpec: the segments a person bears under a geometry.Minimalist.CyclicAgree.AgreementSystem: a geometry and an articulated probe, with the residue, the direct and inverse contexts, the controller of the agreement slot, person licensing of the external argument, and the rank of a person, the number of probe segments it bears.
Main results #
Minimalist.CyclicAgree.AgreementSystem.eaLicensed_iff_isDirect: the core probe licenses the external argument exactly in direct contexts.Minimalist.CyclicAgree.AgreementSystem.isDirect_iff_kind_eq_downstream: under a chain geometry a context is direct iff it is downstream on the system's rank.Minimalist.CyclicAgree.AgreementSystem.IsDirect.mono: a more articulated probe has more direct contexts.Minimalist.CyclicAgree.AgreementSystem.flat_isInverse: a flat probe makes every context inverse.
References #
Person geometries #
A person geometry fixes which innermost segment distinguishes first from second person. It is
speaker under standard and addressee under addressee, and under branching both are sister
leaves of participant ([HR02]).
- standard : PersonGeometry
- addressee : PersonGeometry
- branching : PersonGeometry
Instances For
Equations
- Minimalist.CyclicAgree.instDecidableEqPersonGeometry x✝ y✝ = if h : x✝.ctorIdx = y✝.ctorIdx then isTrue ⋯ else isFalse ⋯
Equations
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
The segments a geometry uses, from the root down.
Equations
- Minimalist.CyclicAgree.PersonGeometry.standard.nodes = [Minimalist.PersonSegment.pi, Minimalist.PersonSegment.participant, Minimalist.PersonSegment.speaker]
- Minimalist.CyclicAgree.PersonGeometry.addressee.nodes = [Minimalist.PersonSegment.pi, Minimalist.PersonSegment.participant, Minimalist.PersonSegment.addressee]
- Minimalist.CyclicAgree.PersonGeometry.branching.nodes = [Minimalist.PersonSegment.pi, Minimalist.PersonSegment.participant, Minimalist.PersonSegment.speaker, Minimalist.PersonSegment.addressee]
Instances For
The segments a person bears under a geometry, from the root down.
Equations
- Minimalist.CyclicAgree.personSpec geom p = List.filter (fun (x : Minimalist.PersonSegment) => decide (x ∈ Minimalist.PersonSegment.spec p)) geom.nodes
Instances For
Every person bears π under every geometry.
A geometry is a chain when the persons' specifications are linearly ordered by inclusion.
Equations
- geom.IsChain = IsChain (fun (l m : List Minimalist.PersonSegment) => l ⊆ m) (Set.range (Minimalist.CyclicAgree.personSpec geom))
Instances For
Articulated probes and agreement systems #
An articulated probe is a list of unvalued segments, from the most general to the most specific.
Equations
Instances For
The flat probe [uπ].
Instances For
The partial probe [uπ, uparticipant], which distinguishes participants from third person.
Equations
Instances For
The full probe of a geometry, every segment the geometry uses.
Equations
- Minimalist.CyclicAgree.fullProbe geom = geom.nodes
Instances For
A language's agreement system is a person geometry together with an articulated probe.
- geometry : PersonGeometry
The person geometry.
- probe : Probe.Articulation
The articulated probe.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
Equations
- One or more equations did not get rendered due to their size.
Instances For
One of the two arguments of a transitive clause.
Instances For
Equations
- Minimalist.CyclicAgree.instDecidableEqArgument x✝ y✝ = if h : x✝.ctorIdx = y✝.ctorIdx then isTrue ⋯ else isFalse ⋯
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
The segments a person bears under the system's geometry.
Equations
- sys.spec p = Minimalist.CyclicAgree.personSpec sys.geometry p
Instances For
The residue of the probe after Agree with the internal argument, the segments it does not bear.
Equations
- sys.residue ia = List.filter (fun (x : Minimalist.PersonSegment) => decide (x ∉ sys.spec ia)) sys.probe
Instances For
A context, the scenario of the external over the internal argument, is direct when the external argument bears some segment of the residue.
Instances For
A context is inverse when it is not direct.
Instances For
Equations
- sys.instDecidablePredScenarioPersonIsDirect x✝ = List.decidableBEx (Membership.mem (sys.spec x✝.high)) (sys.residue x✝.low)
Equations
- sys.instDecidablePredScenarioPersonIsInverse x✝ = instDecidableNot
The argument controlling the agreement slot, the external argument in a direct context.
Equations
- sys.controller s = if sys.IsDirect s then Minimalist.CyclicAgree.Argument.ea else Minimalist.CyclicAgree.Argument.ia
Instances For
The person the agreement slot realizes.
Instances For
The segments checked on each cycle, by the internal argument and then by the external one out of the residue.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The rank of a person on the system's scale is the number of probe segments it bears.
Equations
- sys.rank p = (List.filter (fun (x : Minimalist.PersonSegment) => decide (x ∈ sys.spec p)) sys.probe).length
Instances For
A segment of the probe searches its domain, halting at the closest goal, which bears π and
so intervenes for every segment, and Agrees with that goal iff it bears the segment.
Equations
- sys.segProbe s = Minimalist.Probe.ofInt fun (p : Person) => decide (s ∈ sys.spec p)
Instances For
The external argument is licensed by the core probe when some segment of the residue Agrees with it from the next projection of v, whose domain has the external argument closest and the internal one below.
Equations
Instances For
Equations
- sys.instDecidablePredScenarioPersonEALicensed x✝ = List.decidableBEx (fun (x : Minimalist.PersonSegment) => (sys.segProbe x).agree [x✝.high, x✝.low] = some x✝.high) (sys.residue x✝.low)
The core probe licenses the external argument exactly in direct contexts.
Arguments of the same person make an inverse context.
A probe with more segments has more direct contexts.
A flat probe leaves no residue, since every internal argument bears π, so every context is
inverse.
Under a chain geometry a context is direct iff the external argument bears more of the probe than the internal one does.
Under a chain geometry a context is direct iff it is downstream on the system's rank, so the inverse contexts are the balanced and upstream scenarios.