Partition Cells #
@cite{groenendijk-stokhof-1984} @cite{merin-1999}
Concrete cell enumeration for partitions (QUD) over finite domains:
toCells/numCells—List-based cells via greedy representative fold.toFinpartition— bridge to mathlib'sFinpartition(exhaustivity and disjointness for free).toCellsFinsetand helpers —Finset-based cells used by the decision- theoretic bridge inCore/Agent/PartitionDT.lean.
The two views are complementary: toCells gives a chosen ordering of
representatives (useful for induction), while toCellsFinset is unordered
and plays nicely with Finset.sum_biUnion decompositions.
Cell-membership operator (G&S Ch I) #
ans Q i returns the characteristic function of the cell of Q's
partition containing i — (@cite{groenendijk-stokhof-1984}, p. 14-15).
This is substrate; paper-specific theorems about answerhood (Karttunen
completeness, Belnap distributivity, mention-some, exhaustivity ladder)
live in the topical files under Theories/Semantics/Questions/.
Finite Partition Cells #
Compute partition cells as Finsets over a finite domain.
Each cell is the set of elements equivalent to a representative, restricted to the input list. Representatives are chosen greedily from the input list.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Representative fold helpers #
Finer partitions have at least as many cells.
The covering map from q'-representatives to q-representatives is injective
(by pairwise inequivalence and refinement), giving |q-reps| ≥ |q'-reps|.
Cells of a QUD respect the equivalence relation: for any cell in q.toCells worlds,
if q.sameAnswer w v = true and both w, v ∈ worlds, then w ∈ cell ↔ v ∈ cell.
Each fine cell is contained in some coarse cell (w.r.t. toCells).
If q refines q' (q ⊑ q', finer partition), then for every fine cell
c of q, there exists a coarse cell of q' containing it.
Each coarse cell contains some fine cell (w.r.t. toCells).
If q' refines q (q' ⊑ q, finer partition), then for every coarse cell
c of q, there exists a fine cell of q' contained in it.
Each cell of toCells is nonempty: there exists an element in elements
that belongs to the cell (namely, the cell's representative).
Every cell in toCells has a representative from the input list,
and cell membership is w ∈ elements ∧ q.sameAnswer rep w.
Finpartition from QUD #
The Finpartition induced by a QUD over a Fintype.
Uses Mathlib's Finpartition.ofSetoid — exhaustivity, disjointness, and
non-emptiness of cells come for free from the Finpartition structure.
Equations
- q.toFinpartition = Finpartition.ofSetoid q.toSetoid
Instances For
Finset-based Partition Cells #
Partition cells of worlds under QUD q, as a Finset of Finsets. Each cell is the set of elements in worlds that are q-equivalent to some w.
Equations
- q.toCellsFinset worlds = Finset.image (fun (w : M) => {v ∈ worlds | q.sameAnswer w v = true}) worlds
Instances For
Every world belongs to some cell in toCellsFinset.
Cells from toCellsFinset are pairwise disjoint.
Under refinement, each fine cell is a subset of some coarse cell.
A coarse cell equals the union of fine cells within it.
Fine cells within a coarse cell are pairwise disjoint (inherited from the fine partition being pairwise disjoint).