Cooper (2023) Ch. 8 â Type-Based Underspecification #
[Coo23] [Cho81] [Kan94] [SP21] [Kam81] [Chi95]
Cooper's From Perception to Communication Chapter 8 introduces content
types that replace specific contents with types whose witnesses are fully
specified readings. This file formalises §8.2 (quantifier scope and
underspecification) and §8.3 (anaphora â donkey, binding, cross-sentential,
negation), and provides bridge theorems linking Cooper's TTR machinery to
linglib's ScopeConfig and BindingConfig interfaces.
The companion Studies/Cooper2023/Basic.lean wires this Ch. 8 substrate
to the donkey rows in Data/Examples/ and the Chomsky1981 binding paradigm.
Main definitions #
QStore,QStore.store,QStore.retrieveâ quantifier-storage stack (Cooper §8.2, adapting Cooper 1983-style storage to TTR).TwoQuantScope,TwoQuantScope.đâ underspecified content type for a two-quantifier sentence; witnesses correspond to the two scope readings.Cntxtââ full Ch. 8 context (Cooper §8.2-8.3, evolved across the chapter as localityđ©and reflexive markingđŻare added).localize,reflexivize,anaphoricResolveâ TTR operations for donkey anaphora and binding (§8.3).UnderspecClosureââ inductive closure of a content type under the seven Ch. 8 operators (base, localize, reflexivize, align, anaphoric, store, retrieve).NQuantScopeâ formaliser's extension to n quantifiers (Cooper §8.2 treats only n †2; the N! over-generation is well known to violate empirical scope-island constraints).
Main statements #
tagged_roundtripâ bijection betweenTwoQuantScope.đwitnesses andSemantics.Scope.ScopeConfigtags. Engineering interface for downstream RSA-style scope listeners ([SP21]); Cooper himself does not draw this connection.reflexivizeâ_agrees_with_simpleâ record-typedreflexivizeâcollapses to the simplifiedreflexivizewhen the context is initial.donkeyNeg_uses_localizationâ the negation donkey sentence reuseslocalize.reflexivize_to_binding,pronominalBindingConfigâ translate TTR's assignment-based binding to positionalBindingConfig. Cooper §8.3 (book p.371) deliberately avoids positional encodings in favour of assignment-percolation; the bridge is a linglib engineering convenience, not Cooper's theory.
Notation #
â(Script L, U+2112) â Cooper's localization operator (§8.3 eq 49).âÊžâ universal-localization variant for strong-donkey readings.ââ reflexivization (§8.3 eq 84).- Purification operators
đ(Fraktur P) /đÊžare inherited fromCooper2023Ch7.
Implementation notes #
localizevs. Ch. 7purify. Cooper §8.3 eq (49) definesâ(đ«)as a record-type merge: the outer parameterT1is folded into the inner property's record-domain under labelđ, producing another parametric property. linglib'sPPptyschema has no inner record-domain (the foreground argument is a bareE), so the record-merge collapses to ÎŁ-existential elimination of the background â definitionally identical to Ch. 7'spurify. Theabbrev localize := purifyrecords this encoding-collapse, not a text-level identity ofâwithđin Cooper's prose.- Strong-donkey reading. Cooper §8.3 eq (60) derives the strong reading
by applying
đ^â(Ch. 7 eq 13) to a scope already prepared byâand path-alignment (alignPathshere). The end-to-end three-stage pipelineâ â alignPaths â đ^âis not formalised here â only the individual stages are present. - TTR witness types are
Type-valued, notProp. Cooper's witness records are first-class data (fields can be inspected and used compositionally).Nonempty/IsEmptymediate inhabitance claims where the witness data is not needed downstream.
TODO #
- End-to-end formalisation of the
â â alignPaths â đ^âstrong-donkey pipeline (theDonkeyAnaphorasection currently exercises only the weak reading). - Bridge from
UnderspecClosureâsyntax to a semantic evaluator (twoQuant_embeds_in_closureonly asserts the base constructor; no compositional interpretation is provided).
Quantifier stores #
A quantifier store holds quantifiers that have been "tucked away" during composition and await scope assignment via retrieval. Cooper §8.2 adapts Cooper 1983-style storage to TTR.
A quantifier store: a list of quantifiers awaiting scope resolution (Cooper §8.2). Stored quantifiers are later retrieved at scope positions; retrieval order determines scope.
- stored : List (Semantics.TypeTheoretic.Quant E)
The stored quantifiers, ordered by storage time
Instances For
Empty quantifier store: no pending scope ambiguity.
Equations
- Cooper2023Ch8.QStore.empty = { stored := [] }
Instances For
A store is unplugged when quantifiers remain to be scoped.
Equations
- qs.isUnplugged = (qs.stored â [])
Instances For
Plugged â ÂŹ unplugged.
The empty store is plugged by construction.
Store and retrieve operations #
store moves a quantifier from the content into the qstore, leaving a
trace variable in the content. retrieve pops the outermost stored
quantifier and applies it at a scope position; retrieval order determines
relative scope (Cooper §8.2).
Push a quantifier onto the store (Cooper §8.2).
Instances For
Storing into a plugged store makes it unplugged.
Pop the outermost stored quantifier (Cooper §8.2). Returns the
quantifier and the remaining store, or none if plugged.
Equations
Instances For
Store then retrieve recovers the stored quantifier.
Two-quantifier scope and the underspecification closure #
For sentences with two quantifiers and a binary relation, the two possible
retrieval orders produce exactly two scope readings: "every boy hugged a
dog" has â>â and â>â readings. The underspecification closure đ records
both.
A two-quantifier scope configuration: two quantifiers and a relation. The minimal underspecified content for a doubly-quantified sentence (Cooper §8.2).
- rel : E â E â Type
The binary relation (e.g., hug)
- qâ : Semantics.TypeTheoretic.Quant E
The subject quantifier (e.g., every boy)
- qâ : Semantics.TypeTheoretic.Quant E
The object quantifier (e.g., a dog)
Instances For
Surface scope reading: Qâ scopes over Qâ. Retrieving Qâ first
gives outermost scope. For "every boy hugged a dog":
âx. boy(x) â ây. dog(y) â§ hug(x,y).
Equations
- s.surfaceScope = s.qâ fun (x : E) => s.qâ fun (y : E) => s.rel x y
Instances For
Inverse scope reading: Qâ scopes over Qâ.
For "every boy hugged a dog": ây. dog(y) â§ âx. boy(x) â hug(x,y).
Equations
- s.inverseScope = s.qâ fun (y : E) => s.qâ fun (x : E) => s.rel x y
Instances For
đ is inhabited iff at least one scope reading is true.
A surface scope witness embeds into đ.
Equations
- s.surfaceToUnderspec w = Sum.inl w
Instances For
An inverse scope witness embeds into đ.
Equations
- s.inverseToUnderspec w = Sum.inr w
Instances For
Select a scope reading by ScopeConfig. Ch8 â [SP21] bridge: retrieval order corresponds to ScopeConfig.surface /.inverse.
Equations
Instances For
Bridge to ScopeConfig #
The witnesses of đ(content) are in bijection with the
Semantics.Scope.ScopeConfig tags used by [SP21]'s
RSA scope listener: each ScopeConfig selects one reading, and every
witness of đ comes from exactly one reading. The bridge is a linglib
engineering interface; Cooper himself does not draw this connection.
Every witness of đ is tagged by a ScopeConfig.
Equations
- s.đ_to_tagged (Sum.inl surf) = âšSemantics.Scope.ScopeConfig.surface, surfâ©
- s.đ_to_tagged (Sum.inr inv) = âšSemantics.Scope.ScopeConfig.inverse, invâ©
Instances For
A tagged reading embeds into đ.
Equations
- s.tagged_to_đ tagged = match tagged.fst, tagged.snd with | Semantics.Scope.ScopeConfig.surface, w => Sum.inl w | Semantics.Scope.ScopeConfig.inverse, w => Sum.inr w
Instances For
Round-trip: tagged â đ â tagged is the identity. The bijection
between đ witnesses and ScopeConfig-tagged readings.
Phenomenon: scope ambiguity in "every boy hugged a dog" #
The classic scope ambiguity example. Two boys, two dogs; each boy hugs a different dog. Surface scope is true but inverse scope is false.
Equations
- Cooper2023Ch8.instDecidableEqScopeInd 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
- Cooper2023Ch8.instReprScopeInd = { reprPrec := Cooper2023Ch8.instReprScopeInd.repr }
Boy predicate: Tom and Bill are boys.
Equations
- Cooper2023Ch8.isBoy Cooper2023Ch8.ScopeInd.tom = PUnit.{1}
- Cooper2023Ch8.isBoy Cooper2023Ch8.ScopeInd.bill = PUnit.{1}
- Cooper2023Ch8.isBoy xâ = Empty
Instances For
Dog predicate: Fido and Rex are dogs.
Equations
- Cooper2023Ch8.isDogâ Cooper2023Ch8.ScopeInd.fido = PUnit.{1}
- Cooper2023Ch8.isDogâ Cooper2023Ch8.ScopeInd.rex = PUnit.{1}
- Cooper2023Ch8.isDogâ xâ = Empty
Instances For
Hug predicate: Tom hugs Fido, Bill hugs Rex. This scenario makes surface scope true but inverse scope false: every boy hugged A dog (different dogs), but no single dog was hugged by every boy.
Equations
- Cooper2023Ch8.hugs Cooper2023Ch8.ScopeInd.tom Cooper2023Ch8.ScopeInd.fido = PUnit.{1}
- Cooper2023Ch8.hugs Cooper2023Ch8.ScopeInd.bill Cooper2023Ch8.ScopeInd.rex = PUnit.{1}
- Cooper2023Ch8.hugs xâÂč xâ = Empty
Instances For
The universal quantifier for boys.
Instances For
The existential quantifier for dogs.
Instances For
The two-quantifier scope configuration for "every boy hugged a dog".
Equations
- Cooper2023Ch8.everyBoyHuggedADog = { rel := Cooper2023Ch8.hugs, qâ := Cooper2023Ch8.everyBoy, qâ := Cooper2023Ch8.aDog }
Instances For
Surface scope witness: every boy hugged a (possibly different) dog. TomâFido, BillâRex.
Equations
- Cooper2023Ch8.surfaceScopeWitness Cooper2023Ch8.ScopeInd.tom x_2 = { individual := Cooper2023Ch8.ScopeInd.fido, restrWit := PUnit.unit, scopeWit := PUnit.unit }
- Cooper2023Ch8.surfaceScopeWitness Cooper2023Ch8.ScopeInd.bill x_2 = { individual := Cooper2023Ch8.ScopeInd.rex, restrWit := PUnit.unit, scopeWit := PUnit.unit }
Instances For
Inverse scope fails: no single dog was hugged by every boy.
đ is inhabited (via the surface scope reading).
Equations
Instances For
The surface reading is the only true reading in this scenario.
The scope reading is correctly identified as surface via tagging.
Bridge: scope readings to Ch. 7 witness conditions #
A surface scope reading with a universal subject and existential object
corresponds to per-element ParticularWC_Exist conditions, yielding REFSET
anaphora for the object NP ("Every boy hugged a dog. It was friendly." â
"it" picks up one dog per boy, distributive REFSET).
A surface scope witness âx. P(x) â ây. Q(y) â§ R(x,y) yields
a ParticularWC_Exist for the inner existential at each fixed subject â
predicting REFSET anaphora for the object NP.
Equations
- Cooper2023Ch8.surfaceScopeInnerWitness P Q R w x hP = { x := (w x hP).individual, pWit := (w x hP).restrWit, qWit := (w x hP).scopeWit }
Instances For
An inverse scope witness ây. Q(y) â§ âx. P(x) â R(x,y) yields
a ParticularWC_Exist for the outer existential â there is one specific
entity witnessing Q under which the universal scopes.
"A dog was hugged by every boy. It was large." â "it" picks up the specific dog (REFSET from outer scope).
Equations
- Cooper2023Ch8.inverseScopeOuterWitness P Q R w = { x := w.individual, pWit := w.restrWit, qWit := w.scopeWit }
Instances For
Surface scope (semUniversal + ExistWitness) matches existPQ at
each individual â the Ch. 7 existential-predicate overlap; scope retrieval
order determines which witness conditions hold per quantifier position.
Localization #
Cooper §8.3 eq (49): localization â(đ«) takes a doubly-parametric property
Ëčλc:T1.Ëčλr:T2.ÏËșËș and folds the outer context-parameter T1 into the inner
property's record-domain under label đ , producing another parametric
property whose body has paths c.Ï rewritten to r.đ .Ï. This is the Ch. 8
mechanism for donkey anaphora ("Every farmer who owns a donkey beats it"):
the indefinite "a donkey" is stored, then localized into the restrictor
"farmer who owns a donkey", binding the donkey existentially (weak) or
universally (strong) inside the property body.
In linglib's flat PPpty encoding (no inner record-domain), this
record-merge collapses to ÎŁ-existential elimination of the background,
making localize definitionally identical to Ch. 7's purify. See the
Implementation notes in the module docstring.
Cooper's localization operator â (§8.3 eq 49).
In linglib's flat PPpty encoding localize is the same as Ch. 7's
purify; see the module-level Implementation notes for the
encoding-collapse argument. The abbrev records this identification so
Ch. 7 lemmas discharge Ch. 8 obligations definitionally.
Equations
Instances For
Cooper's universal-localization variant âÊž (the strong-donkey
companion to â). Coincides with Ch. 7's purifyUniv for the same
encoding reason.
Instances For
Cooper's localization operator â (§8.3 eq 49).
In linglib's flat PPpty encoding localize is the same as Ch. 7's
purify; see the module-level Implementation notes for the
encoding-collapse argument. The abbrev records this identification so
Ch. 7 lemmas discharge Ch. 8 obligations definitionally.
Equations
- Cooper2023Ch8.termâ_ = Lean.ParserDescr.node `Cooper2023Ch8.termâ_ 1024 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol "â") (Lean.ParserDescr.cat `term 1024))
Instances For
Cooper's universal-localization variant âÊž (the strong-donkey
companion to â). Coincides with Ch. 7's purifyUniv for the same
encoding reason.
Equations
- Cooper2023Ch8.«termâÊž_» = Lean.ParserDescr.node `Cooper2023Ch8.«termâÊž_» 1024 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol "âÊž") (Lean.ParserDescr.cat `term 1024))
Instances For
Localization lemmas (inherited from Ch7 purification) #
Since localize := purify, witness-existence lemmas about purification
carry over verbatim. We restate them under the Ch. 8 vocabulary for
discoverability.
Localization preserves truth: a localized property is witnessed iff the original is witnessable under some context.
Universal localization: witnessed iff property holds under all contexts.
Localizing a trivial parametric property adds only a Unit factor.
Weak and strong donkey readings agree when the parametric background
is trivial. Corollary of donkey_readings_agree_when_pure.
Phenomenon: "Every farmer who owns a donkey beats it" #
The classical Geach/Kamp donkey example (Cooper §8.3 uses "no dog which chases a cat catches it" as his primary case; we use the better-known farmer/donkey variant). Two farmers, two donkeys; each farmer owns and beats a different donkey. This demonstrates:
- Localization absorbs "a donkey" into the restrictor.
- Weak donkey (
âin linglib's encoding =đ) is witnessable â each farmer owns/beats some donkey. - Strong donkey (
âÊž=đÊž) fails â no farmer owns/beats every donkey. - The divergence witnesses the non-triviality of
donkey_readings_agree_when_pure.
Equations
- Cooper2023Ch8.instDecidableEqDonkeyInd xâ yâ = if h : xâ.ctorIdx = yâ.ctorIdx then isTrue ⯠else isFalse âŻ
Equations
- Cooper2023Ch8.isFarmer Cooper2023Ch8.DonkeyInd.farmer1 = PUnit.{1}
- Cooper2023Ch8.isFarmer Cooper2023Ch8.DonkeyInd.farmer2 = PUnit.{1}
- Cooper2023Ch8.isFarmer xâ = Empty
Instances For
Equations
- Cooper2023Ch8.isDonkeyâ Cooper2023Ch8.DonkeyInd.donkey1 = PUnit.{1}
- Cooper2023Ch8.isDonkeyâ Cooper2023Ch8.DonkeyInd.donkey2 = PUnit.{1}
- Cooper2023Ch8.isDonkeyâ xâ = Empty
Instances For
Ownership: farmer1 owns donkey1, farmer2 owns donkey2.
Equations
- Cooper2023Ch8.owns Cooper2023Ch8.DonkeyInd.farmer1 Cooper2023Ch8.DonkeyInd.donkey1 = PUnit.{1}
- Cooper2023Ch8.owns Cooper2023Ch8.DonkeyInd.farmer2 Cooper2023Ch8.DonkeyInd.donkey2 = PUnit.{1}
- Cooper2023Ch8.owns xâÂč xâ = Empty
Instances For
Beating: each farmer beats the donkey they own.
Equations
- Cooper2023Ch8.beats Cooper2023Ch8.DonkeyInd.farmer1 Cooper2023Ch8.DonkeyInd.donkey1 = PUnit.{1}
- Cooper2023Ch8.beats Cooper2023Ch8.DonkeyInd.farmer2 Cooper2023Ch8.DonkeyInd.donkey2 = PUnit.{1}
- Cooper2023Ch8.beats xâÂč xâ = Empty
Instances For
Background type: a donkey that exists.
Equations
Instances For
The parametric property "farmer who owns a donkey [and beats it]". Background: a specific donkey d. Foreground: given d, x is a farmer who owns d and beats d.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Farmer1 satisfies the weak donkey reading: owns and beats donkey1.
Equations
- Cooper2023Ch8.farmer1WeakDonkey = âšâšCooper2023Ch8.DonkeyInd.donkey1, PUnit.unitâ©, (PUnit.unit, PUnit.unit, PUnit.unit)â©
Instances For
Farmer2 satisfies the weak donkey reading: owns and beats donkey2.
Equations
- Cooper2023Ch8.farmer2WeakDonkey = âšâšCooper2023Ch8.DonkeyInd.donkey2, PUnit.unitâ©, (PUnit.unit, PUnit.unit, PUnit.unit)â©
Instances For
The strong-donkey reading fails for farmer1: the universal
"every donkey d, farmer1 owns d â§ beats d" is falsified by donkey2,
which farmer1 does not own.
Weak and strong donkey readings genuinely diverge in this scenario:
weak is witnessable, strong is empty. Witness that
donkey_readings_agree_when_pure has a real hypothesis â when Bg is
non-trivial (multiple donkeys), the readings differ.
The full sentence "every farmer who owns a donkey beats it" is witnessed under the weak donkey reading.
Equations
- Cooper2023Ch8.everyFarmerBeatsDonkeyWeak Cooper2023Ch8.DonkeyInd.farmer1 x_2 = PUnit.unit
- Cooper2023Ch8.everyFarmerBeatsDonkeyWeak Cooper2023Ch8.DonkeyInd.farmer2 x_2 = PUnit.unit
Instances For
TODO: Cooper's strong-donkey pipeline â â alignPaths â đ^â #
Cooper §8.3 eq (60) derives the strong-donkey reading by composing three
distinct operations: localize the verb-phrase parametric content (â,
eq 49); align two paths in the result so the pronoun depends on the
indefinite (alignPaths, eq 51-52); then apply đ^â (Ch. 7 eq 13) to
this prepared scope as the witness condition for the universal
quantifier. The composite pipeline is not formalised here; we have each
stage independently (localize, alignPaths, purifyUniv), but the
end-to-end derivation for "every farmer who owns a donkey likes it" is
deferred.
Reflexivization and anaphoric resolution #
Cooper §8.3 introduces two binding operations: â (reflexivization,
eq 84) removes the reflexive marking from the context and binds the
reflexive pronoun to the subject variable; @_{i,j} (anaphoric
combination, eq 28) identifies assignment path j with path i, linking
a pronoun to its antecedent.
The interplay yields complementary distribution: â forces local
binding for reflexives; @_{i,j} with a constant resolution gives
disjoint reference for pronouns; the boundary operation B (eq 77, see
below) clears locality at clause boundaries.
The record-typed versions (reflexivizeâ, anaphoricCombineâ, etc.,
using Cntxtâ) are defined further down; the simplified versions here
serve as the clean semantic interface for bridge theorems, with
reflexivizeâ_agrees_with_simple connecting the two layers.
Reflexivization (Cooper §8.3 eq 84): identify the two arguments of a
binary relation. Removes the reflexive marking (r-field) from the
context and replaces the dependency on the assignment variable đ€.xᔹ
with the domain variable r.x. Semantic effect: a transitive verb
R(x,y) becomes a reflexive VP R(x,x), forcing the object to corefer
with the subject. "Sam likes himself" = â(like)(Sam) = like(Sam, Sam).
Equations
- Cooper2023Ch8.reflexivize R x = R x x
Instances For
Reflexivization (Cooper §8.3 eq 84): identify the two arguments of a
binary relation. Removes the reflexive marking (r-field) from the
context and replaces the dependency on the assignment variable đ€.xᔹ
with the domain variable r.x. Semantic effect: a transitive verb
R(x,y) becomes a reflexive VP R(x,x), forcing the object to corefer
with the subject. "Sam likes himself" = â(like)(Sam) = like(Sam, Sam).
Equations
- Cooper2023Ch8.termâ_ = Lean.ParserDescr.node `Cooper2023Ch8.termâ_ 1024 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol "â") (Lean.ParserDescr.cat `term 1024))
Instances For
Anaphoric resolution: resolve a parametric property's background
using a function of the foreground argument. Captures the semantic effect
of Cooper's @_{i,j} (§8.3): identifying path đ€.xⱌ with đ€.xᔹ creates
the anaphoric link.
- Reflexives:
resolve = id(subject is the referent) â equivalent toâ. - Pronouns:
resolve = const (g i)(assignment provides referent).
Equations
- Cooper2023Ch8.anaphoricResolve P resolve x = P.fg (resolve x) x
Instances For
â forces argument identity: any witness of â R x is R x x.
â is anaphoric resolution with identity: reflexivization is the
special case where the background (object referent) is resolved to equal
the foreground argument (subject).
Pronoun resolution with a constant referent y: resolves to y
regardless of the subject x. Captures @_{i,j} when the assignment
g i = y is fixed from discourse context. "Sam likes him(=Bill)" yields
like(Sam, Bill).
Phenomenon: "Sam likes himself" / "Sam likes him" #
Cooper §8.3: "Sam likes him" has two fields x and y for individuals;
when y = x, the fields are filled by the same individual.
Reflexivization â forces this identification, yielding complementary
distribution:
- "Sam likes himself" =
â like (Sam)=like(Sam, Sam)(coreference). - "Sam likes him(=Bill)" =
anaphoricResolve likeParam (const Bill) (Sam)=like(Sam, Bill)(disjoint reference).
Equations
- Cooper2023Ch8.instDecidableEqBindInd xâ yâ = if h : xâ.ctorIdx = yâ.ctorIdx then isTrue ⯠else isFalse âŻ
"like" as a non-trivial binary relation: Sam likes everyone, Bill
likes Kim and himself, Kim likes herself only. The non-triviality is
load-bearing â â (likeâ) Kim is inhabited but likeâ Kim Sam is not,
so reflexivization genuinely restricts which argument pairs are
witnessable.
Equations
- Cooper2023Ch8.likeâ Cooper2023Ch8.BindInd.sam xâ = PUnit.{1}
- Cooper2023Ch8.likeâ Cooper2023Ch8.BindInd.bill Cooper2023Ch8.BindInd.bill = PUnit.{1}
- Cooper2023Ch8.likeâ Cooper2023Ch8.BindInd.bill Cooper2023Ch8.BindInd.kim = PUnit.{1}
- Cooper2023Ch8.likeâ Cooper2023Ch8.BindInd.kim Cooper2023Ch8.BindInd.kim = PUnit.{1}
- Cooper2023Ch8.likeâ xâÂč xâ = Empty
Instances For
likeâ is non-trivial: not everyone likes everyone.
"like" as parametric content: the object comes from background. The verb phrase "likes him" has the object's referent in the context.
Equations
- Cooper2023Ch8.likeParam = { Bg := Cooper2023Ch8.BindInd, fg := fun (obj subj : Cooper2023Ch8.BindInd) => Cooper2023Ch8.likeâ subj obj }
Instances For
"Sam likes himself" via â: â likeâ Sam = likeâ Sam Sam.
Equations
- Cooper2023Ch8.samLikesHimself = PUnit.unit
Instances For
"Sam likes him(=Bill)" via pronoun resolution.
Equations
- Cooper2023Ch8.samLikesBill = PUnit.unit
Instances For
â forces coreference: the reflexive witness equals likeâ Sam Sam.
Pronoun resolution gives likeâ Sam Bill â distinct arguments.
Every individual can like themselves; â is always witnessable here.
Equations
- Cooper2023Ch8.allLikeSelf Cooper2023Ch8.BindInd.sam = PUnit.unit
- Cooper2023Ch8.allLikeSelf Cooper2023Ch8.BindInd.bill = PUnit.unit
- Cooper2023Ch8.allLikeSelf Cooper2023Ch8.BindInd.kim = PUnit.unit
Instances For
â applied via anaphoricResolve with identity matches direct
reflexivization.
â genuinely constrains: Kim can like herself but not Bill â the
restriction is non-trivial because likeâ Kim Bill is empty while
likeâ Kim Kim is PUnit.
Bridge to BindingConfig #
Translate TTR's assignment-based binding (â / @_{i,j}) to the
position-based BindingConfig interface in Syntax.Binding.Semantics.
Cooper §8.3 (book p.371) deliberately avoids positional encodings in
favour of assignment-percolation; the bridge is a linglib engineering
convenience for consumers that want position-typed binding output, not a
claim about Cooper's theory. The mapping is:
âapplied âBindingRelationwith subject as binder, object as bindee.@_{i,j}pronoun resolution â free variable in theBindingConfig.
â induces a binding relation: subject binds the reflexive object.
The subject at position 0 binds "himself" at position 2.
Equations
- Cooper2023Ch8.reflexivizeToBinding subjectPos objectPos = { binder := subjectPos, bindee := objectPos, varIndex := 0 }
Instances For
Binding config for "Sam likes himself": one local binding.
Equations
- Cooper2023Ch8.reflexiveBindingConfig = { bindings := [Cooper2023Ch8.reflexivizeToBinding { index := 0 } { index := 2 }], freeVariables := [] }
Instances For
The reflexive binding config is well-formed: no double binding, no self-binding, consistent indices.
Binding config for "Sam likes him": no local bindings, the pronoun at position 2 is a free variable.
Equations
- Cooper2023Ch8.pronominalBindingConfig = { bindings := [], freeVariables := [({ index := 2 }, 0)] }
Instances For
The pronominal config has no local bindings (Condition B).
Bridge: TTR â maps to a non-trivial binding config (one binding), while @{i,j} pronoun resolution maps to an empty binding config. The semantic mechanism (â vs @{i,j}) determines the syntactic binding structure.
Full Ch. 8 context Cntxtâ #
Cooper's context evolves across the chapter: the initial 5-field context
{q, đ°, đŽ, đ€, đ } (§8.2) is extended with đ© (locality) in §8.3 and
with đŻ (reflexive marking) later in §8.3. Cntxtâ encodes the final
7-field shape; pre-locality and pre-reflexive variants are recovered by
leaving đ© / đŻ empty. Extends CntxtFull (Ch. 7) with q, đ©, đŻ.
Cooper's full Ch. 8 context. Fields: quantifier store q, current
assignment đ°, locality đ©, reflexive-marking đŻ, wh-assignment đŽ,
gap-tracking assignment đ€, propositional context đ .
- q : QStore E
- đ° : Semantics.TypeTheoretic.Assgnmnt E
- đ© : Semantics.TypeTheoretic.Assgnmnt E
- đŻ : Semantics.TypeTheoretic.Assgnmnt E
- đŽ : Semantics.TypeTheoretic.Assgnmnt E
- đ€ : Semantics.TypeTheoretic.Assgnmnt E
Instances For
The empty initial context.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Pre-locality context shape (Cooper §8.2 initial form): both đ© and
đŻ are empty.
Equations
- c.isPreLocality = ((â (i : â), c.đ© i = none) â§ â (i : â), c.đŻ i = none)
Instances For
Pre-reflexive context shape (Cooper §8.3 mid-form): đŻ is empty.
Equations
- c.isPreReflexive = â (i : â), c.đŻ i = none
Instances For
Boundary operation B and locality-aware @_{i,j} (Cooper §8.3) #
B(α) clears the locality field at clause boundaries; @_{i,j} with a
locality check identifies đ°.xⱌ with đ°.xᔹ only when đ°.xᔹ is in
the đ©-field. Together they enforce a locality constraint on
pronoun-antecedent linking.
Locality-checked @_{i,j}: identifies đ°.xⱌ with đ°.xᔹ only when
đ°.xᔹ is in đ©.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Sentence rule S â NP VP | B(NP' (@VP')).
Equations
- Cooper2023Ch8.sentenceRuleâ np vp = Cooper2023Ch8.boundaryâ fun (c : Cooper2023Ch8.Cntxtâ E) => np c Ă vp c
Instances For
"Sam thinks she is lucky" â B enables non-local pronoun binding. #
Equations
- Cooper2023Ch8.instDecidableEqNLPInd 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
Anaphor-free filter đ and full record-typed reflexivization (Cooper §8.3) #
Anaphor-free filter đ(T): requires the đŻ-field to be empty.
"Principle A" in Cooper's evocation of [Cho81]'s binding theory.
Equations
- Cooper2023Ch8.anaphorFreeâ P c = (Semantics.TypeTheoretic.propT (â (i : â), c.đŻ i = none) Ă P c)
Instances For
Full record-typed reflexivization ââ(P): clears the đŻ-field and
sets đ°(i) = x.
Equations
- Cooper2023Ch8.reflexivizeâ i P c x = P { q := c.q, đ° := Core.PartialAssign.update c.đ° i x, đ© := c.đ©, đŻ := Core.PartialAssign.empty, đŽ := c.đŽ, đ€ := c.đ€, đ := c.đ } x
Instances For
VP rule VP â V NP | đ(V' (@NP')).
Equations
- Cooper2023Ch8.vpRuleâ verb np c x = (Semantics.TypeTheoretic.propT (â (i : â), c.đŻ i = none) Ă (y : E) Ă verb c x y Ă np c y)
Instances For
ââ agrees with the simplified â when P ignores the context.
Generalised underspecification closure #
Inductive closure of a content type T under the seven Ch. 8 operators
(base, localize, reflexivize, align, anaphoric, store, retrieve).
Compositional interpretation as a semantic evaluator is not yet provided
â this is a syntax-tree representation only.
- base {T : Type} : T â UnderspecClosureâ T
- localize {T : Type} : UnderspecClosureâ T â (Bg : Type) â UnderspecClosureâ T
- reflexivize {T : Type} : UnderspecClosureâ T â (idx : â) â UnderspecClosureâ T
- align {T : Type} : UnderspecClosureâ T â (src tgt : â) â UnderspecClosureâ T
- anaphoric {T : Type} : UnderspecClosureâ T â (i j : â) â UnderspecClosureâ T
- store {T : Type} : UnderspecClosureâ T â UnderspecClosureâ T
- retrieve {T : Type} : UnderspecClosureâ T â UnderspecClosureâ T
Instances For
Equations
Instances For
N-quantifier scope (formaliser's extension) #
Cooper §8.2 treats only the n †2 case. We extend the storage-and-retrieve
mechanism to n quantifiers, indexing scope orderings by lists of Fin n
(head = outermost retrieved). The naĂŻve combinatorial maximum is n!
distinct orderings; empirical scope is constrained by scope islands,
freezing, and weak-island effects that this substrate does not enforce.
An n-quantifier scope configuration: an n-ary relation plus n quantifiers.
- rel : (Fin n â E) â Type
- quants : Fin n â Semantics.TypeTheoretic.Quant E
Instances For
Nest the quantifiers along a given retrieval order; the head of the list takes outermost scope.
Equations
- s.nestQuants [] xâ = s.rel xâ
- s.nestQuants (i :: rest) xâ = s.quants i fun (x : E) => s.nestQuants rest fun (j : Fin n) => if j = i then x else xâ j
Instances For
A scope ordering: a (not necessarily distinct) list of Fin n indices
of length n. A proper permutation requires additionally order.Nodup;
we leave this unconstrained because the witness theorems below construct
orderings explicitly.
- order : List (Fin n)
- complete : self.order.length = n
Instances For
Equations
- s.readingAt Ï default = s.nestQuants Ï.order fun (x : Fin n) => default
Instances For
Equations
- s.đ default = ((Ï : Cooper2023Ch8.ScopeOrdering n) Ă s.readingAt Ï default)
Instances For
Equations
- Cooper2023Ch8.surfaceOrderâ = { order := [âš0, Cooper2023Ch8.surfaceOrderâ._proof_3â©, âš1, Cooper2023Ch8.surfaceOrderâ._proof_4â©], complete := Cooper2023Ch8.surfaceOrderâ._proof_5 }
Instances For
Equations
- Cooper2023Ch8.inverseOrderâ = { order := [âš1, Cooper2023Ch8.surfaceOrderâ._proof_4â©, âš0, Cooper2023Ch8.surfaceOrderâ._proof_3â©], complete := Cooper2023Ch8.inverseOrderâ._proof_1 }
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
"Someone gave every child a present" â three quantifiers #
Cooper §8.2 does not analyse this case; the six orderings constructed here are the formaliser's combinatorial enumeration.
Equations
- Cooper2023Ch8.instDecidableEqThreeQInd xâ yâ = if h : xâ.ctorIdx = yâ.ctorIdx then isTrue ⯠else isFalse âŻ
Equations
- Cooper2023Ch8.isSomeoneâ Cooper2023Ch8.ThreeQInd.alice = PUnit.{1}
- Cooper2023Ch8.isSomeoneâ Cooper2023Ch8.ThreeQInd.bob = PUnit.{1}
- Cooper2023Ch8.isSomeoneâ xâ = Empty
Instances For
Equations
- Cooper2023Ch8.isChildâ Cooper2023Ch8.ThreeQInd.child1 = PUnit.{1}
- Cooper2023Ch8.isChildâ Cooper2023Ch8.ThreeQInd.child2 = PUnit.{1}
- Cooper2023Ch8.isChildâ xâ = Empty
Instances For
Equations
- Cooper2023Ch8.isPresentâ Cooper2023Ch8.ThreeQInd.present1 = PUnit.{1}
- Cooper2023Ch8.isPresentâ Cooper2023Ch8.ThreeQInd.present2 = PUnit.{1}
- Cooper2023Ch8.isPresentâ xâ = Empty
Instances For
Equations
- Cooper2023Ch8.gaveâ Cooper2023Ch8.ThreeQInd.alice Cooper2023Ch8.ThreeQInd.child1 Cooper2023Ch8.ThreeQInd.present1 = PUnit.{1}
- Cooper2023Ch8.gaveâ Cooper2023Ch8.ThreeQInd.alice Cooper2023Ch8.ThreeQInd.child2 Cooper2023Ch8.ThreeQInd.present2 = PUnit.{1}
- Cooper2023Ch8.gaveâ xâÂČ xâÂč xâ = Empty
Instances For
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.
Instances For
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.
Instances For
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.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Cross-sentential anaphora (Cooper §8.3) #
"A man walked. He whistled." The pronoun resolves to the indefinite via
asymmetric merge under label đ: the previous sentence's foreground
becomes the current sentence's background.
Cross-sentential resolution: project the individual from the previous sentence's sigma-typed content.
Equations
- Cooper2023Ch8.crossSententialResolve prev = prev.fst
Instances For
Equations
- Cooper2023Ch8.instDecidableEqCSInd xâ yâ = if h : xâ.ctorIdx = yâ.ctorIdx then isTrue ⯠else isFalse âŻ
Equations
- Cooper2023Ch8.isMan Cooper2023Ch8.CSInd.john = PUnit.{1}
- Cooper2023Ch8.isMan Cooper2023Ch8.CSInd.mary = Empty
Instances For
Equations
Instances For
Equations
Instances For
Equations
- Cooper2023Ch8.aManWalked = âšCooper2023Ch8.CSInd.john, (PUnit.unit, PUnit.unit)â©
Instances For
Equations
- Cooper2023Ch8.heWhistled referent = Cooper2023Ch8.whistledâ referent
Instances For
Instances For
Equations
Instances For
Equations
- Cooper2023Ch8.manWalkedHeWhistledWitness = âšCooper2023Ch8.CSInd.john, (PUnit.unit, PUnit.unit, PUnit.unit)â©
Instances For
"No dog which chases a cat catches it" #
Cooper §8.3 primary donkey example combining negation, localization, and path alignment.
Path alignment (Cooper §8.3 eq 52, App A11.8): replace path Ïâ with
Ïâ in a parametric property. In Cooper's full TTR this is a type
operation T_{Ïâ = Ïâ} creating a manifest field; here we simplify to
a relabelling of the background.
Instances For
- dog1 : DonkeyNegInd
- dog2 : DonkeyNegInd
- cat1 : DonkeyNegInd
- cat2 : DonkeyNegInd
Instances For
Equations
- Cooper2023Ch8.instDecidableEqDonkeyNegInd xâ yâ = if h : xâ.ctorIdx = yâ.ctorIdx then isTrue ⯠else isFalse âŻ
Equations
- Cooper2023Ch8.isDogââ Cooper2023Ch8.DonkeyNegInd.dog1 = PUnit.{1}
- Cooper2023Ch8.isDogââ Cooper2023Ch8.DonkeyNegInd.dog2 = PUnit.{1}
- Cooper2023Ch8.isDogââ xâ = Empty
Instances For
Equations
- Cooper2023Ch8.isCatâ Cooper2023Ch8.DonkeyNegInd.cat1 = PUnit.{1}
- Cooper2023Ch8.isCatâ Cooper2023Ch8.DonkeyNegInd.cat2 = PUnit.{1}
- Cooper2023Ch8.isCatâ xâ = Empty
Instances For
Equations
Instances For
Equations
- Cooper2023Ch8.CatBg = ((c : Cooper2023Ch8.DonkeyNegInd) Ă Cooper2023Ch8.isCatâ c)
Instances For
Localized restrictor: cat existential absorbed into "dog which chases a cat".
Equations
- Cooper2023Ch8.dogChasesACat x = (Cooper2023Ch8.isDogââ x Ă (c : Cooper2023Ch8.CatBg) Ă Cooper2023Ch8.chasesâ x c.fst)
Instances For
Equations
- Cooper2023Ch8.catchesâ_none xâÂč xâ = Empty
Instances For
Instances For
"no" quantifier: âx. restr(x) â ÂŹscope(x).
Equations
- Cooper2023Ch8.semNoâ restr scope = ((x : Cooper2023Ch8.DonkeyNegInd) â restr x â scope x â Empty)
Instances For
Instances For
"No dog which chases a cat catches it" is true when no dog catches the cat it chases.
"No dog which chases a cat catches it" is false when every dog catches the cat it chases.
The negation donkey case uses â â the same localization mechanism
as the classic farmer/donkey example.