Centering Theory — Cb, Cf, Cp #
@cite{grosz-joshi-weinstein-1995} §3
The basic forward/backward-looking center operations, parameterized by
the role type (via [CfRankerOf E R]) and the realizes-semantics
(via [Realizes U E]).
Utterance.cf— forward-looking centers, ordered by role rank (descending), with surface order as tie-breaker. Implemented by insertion sort so thatdecidereduces it in the kernel for the paper's worked examples.Utterance.cp— preferred (top-ranked) Cf element.cb prev cur— backward-looking center: highest-ranked element ofprev.cfrealized incur. The current utterance type is generic via[Realizes U E], so the samecbworks for anUtterance E R, aDRSExpr, or any future representation that supplies aRealizesinstance.
The "unique Cb" claim of @cite{grosz-joshi-weinstein-1995} §3 is
enforced by the type Option E, not by a separate theorem.
For a list-of-realizations utterance, realizes is list-membership
of the entity among the realizations' entities.
Equations
- One or more equations did not get rendered due to their size.
For a list-of-realizations utterance, pronominalizes requires a
realization of e whose isPronoun flag is true.
Equations
- One or more equations did not get rendered due to their size.
A flat list of entities also realizes — an entity e is realized by
es : List E iff it appears in es. This is the minimal "bag of
referents" representation, useful when role/pronoun annotations are
unavailable (corpus-extracted referent traces, simple toy examples).
Together with utteranceRealizes and the DRSExpr instance in the
DRT bridge, this confirms that the Realizes typeclass abstracts
cleanly over multiple representations.
Equations
- Discourse.Centering.listRealizes = { decide := fun (es : List E) (e : E) => es.contains e }
Existential characterization of realizes on a list-of-realizations
utterance, useful for proofs.
Existential characterization of pronominalizes on a
list-of-realizations utterance.
Insert r into a Cf list (ordered by CfRankerOf.rank descending),
placing r after any equally-ranked elements so the original
surface order acts as a stable tiebreaker.
Concretely: walk the list, insert r at the first position where
the existing element has strictly smaller rank.
Uses the generalized CfRankerOf E R (per-realization) typeclass
rather than CfRanker R (per-role); when only the role matters,
the default instance cfRankerOf_of_role (in Defs.lean) lifts
automatically.
Equations
- One or more equations did not get rendered due to their size.
- Discourse.Centering.Utterance.cfInsert r [] = [r]
Instances For
Forward-looking centers, ranked highest-first by role rank with
surface order as tiebreaker. Implemented by foldr cfInsert [] —
insertion sort — so that decide reduces it in the kernel for
the paper's worked examples.
Equations
- u.cf = List.map (fun (x : Discourse.Centering.Realization E R) => x.entity) (List.foldr Discourse.Centering.Utterance.cfInsert [] u.realizations)
Instances For
The top-ranked Cf element ("preferred center", Cp).
Instances For
cfInsert preserves membership: every element of the result is either
the inserted element or already in the list.
cfInsert r xs is a permutation of r :: xs — insertion sort
rearranges but doesn't drop or duplicate.
The internal sorted list (before mapping to entities) is a permutation of the surface realization list.
Characterization of cf: an entity is in the forward-looking
centers iff some realization in the utterance refers to it. The
insertion-sort implementation is a permutation, so membership is
preserved.
Backward-looking center of cur with respect to prev: the
highest-ranked element of prev.cf that is realized in cur.
none if no such element exists.
The current utterance cur can be anything with a Realizes U E
instance — including a DRSExpr via the DRT bridge.
Equations
- Discourse.Centering.cb prev cur = List.find? (Discourse.Centering.Realizes.decide cur) prev.cf
Instances For
Locality of Cb (@cite{grosz-joshi-weinstein-1995} §4, claim 5):
when cb prev cur returns some entity, that entity is in
prev.cf — the backward-looking center is strictly local, drawn
only from the previous utterance's forward-looking centers, never
from Cf(U_{n-2}) or earlier.
The Cb is realized in the current utterance: when cb prev cur is
some e, the realizes-relation holds of (cur, e).
Characterization of cb: cb prev cur = some e iff e is in
prev.cf realized in cur, and no earlier element of prev.cf
(i.e., none more highly ranked) is realized in cur. This is the
"first realized in cf-order" definition unfolded.
All entities tied at the highest rank-among-realized, deduplicated.
Under a total ranking, this list has length ≤ 1 (one CB or zero,
matching cb's Option E typing). Under a partial ranking, two
realizations can tie at the maximum and both qualify as CBs — the
case that drives @cite{poesio-stevenson-eugenio-hitzeman-2004} §5.3.4
(their two-CB corner-cupboard / Branicki example, paper §4.1.1
example (10)). PSDH propose decomposing Constraint 1 into "CB
Uniqueness" (this list has length ≤ 1) and "Entity Continuity"
(this list has length ≥ 1) — the substrate decomposition theorem
lives in Constraints.lean.
Structural identity with single-constraint OT (cf.
Core.Constraint.OT.Tableau.optimal): the realizations realized in
cur form the candidate set; CfRankerOf.rank is a single (sign-
flipped) violation profile; cbAll returns the entity-projection
of the OT-optimal candidates. @cite{poesio-stevenson-eugenio-hitzeman-2004}
§3.1 fn 12 endorses this reformulation, citing Beaver 2004's
"The Optimization of Discourse Anaphora." Both substrates here use
List.argmax from Mathlib.Data.List.MinMax as the underlying
extremum-selection primitive; the bridge theorem connecting them
will live in Phenomena/Reference/Studies/Beaver2004.lean (a
future commit). The deliberate non-bridging follows mathlib's
PMF vs Measure precedent: each substrate keeps its own
vocabulary, with cross-framework identities anchored in the paper
that argues them.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Every entity in cbAll prev cur corresponds to some realization in
prev whose entity is realized in cur. The substantive
characterization of cbAll (modulo argmax-rank reasoning, which
a future commit can expose via mem_cbAll_iff).
Every entity in cbAll prev cur is realized in cur.
Every entity in cbAll prev cur is in prev.cf — the multi-CB
set is a subset of the previous utterance's forward-looking
centers, mirroring cb_mem_prev_cf for the single-CB case.