Skip to content

Commit ab83125

Browse files
committed
Core/Partition.lean dissolution: 4 per-purpose Question/Partition/ modules + DT extracted to Core/Agent/PartitionDT.lean (Direction A Setoid-canonical, 21 consumers); pre-existing Interval Time [LE Time]→[LinearOrder Time] cascade fixed across 13 downstream Ev/Eventuality/Interval consumer files (0.230.108)
1 parent 0aa8076 commit ab83125

46 files changed

Lines changed: 830 additions & 715 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

CHANGELOG.md

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,73 @@ The release clock (`v4.29.1`, ...) tracks Lean/mathlib compatibility and is what
44

55
## [Unreleased]
66

7+
## [0.230.108] - 2026-04-21
8+
9+
### Changed
10+
- **`Core/Partition.lean` dissolved into `Core/Question/Partition/`** —
11+
the 1360-line straggler is now four per-purpose modules sharing a
12+
single Setoid-canonical foundation:
13+
- `Core/Question/Partition/QUD.lean` (moved from
14+
`Core/Question/QUD.lean`): `QUD M = {toSetoid : Setoid M, decR :
15+
DecidableRel toSetoid.r}`. The bundled-Setoid struct preserves the
16+
Bool API for ~335 consumer call sites while making the
17+
Setoid-canonical structure explicit.
18+
- `Core/Question/Partition/Basic.lean` (moved from
19+
`Core/Question/Partition.lean`): `IsPartition` predicate (over
20+
`Setoid.IsPartition`), `toSetoid`/`toQUD` bridges.
21+
- `Core/Question/Partition/Lattice.lean` (new, ~89 LOC): refinement
22+
order — `refines` (`⊑`), `coarsens`, reflexivity / transitivity /
23+
antisymmetry, `all_refine_trivial`, `compose_refines_left`/right,
24+
`exact_refines_all`.
25+
- `Core/Question/Partition/Cells.lean` (new, 394 LOC): concrete
26+
enumeration — `toCells`, `numCells`, `stepFn` and rep-fold helpers,
27+
`toCells_*` theorems, `toFinpartition`, `toCellsFinset`,
28+
coverage/disjointness lemmas, fine/coarse refinement lemmas.
29+
- `Core/Question/Partition/Binary.lean` (new, 95 LOC): yes/no
30+
partitions — `binaryPartition`, `complement_same_partition`,
31+
`binaryPartition_coarsens`, `coarsestPreserving` and its
32+
refinement/preservation lemmas.
33+
- `Core/Question/Partition/Negativity.lean` (new, ~50 LOC): Merin's
34+
epistemic characterization — `isProperCoarsening`,
35+
`isNegativeAttribute`.
36+
- **DT block extracted to `Core/Agent/PartitionDT.lean`** (767 LOC) —
37+
partition decision-theoretic infrastructure (`partitionEU`,
38+
`eu_eq_partitionEU`, `coarsening_preserves_eu`, `partitionValue`,
39+
Blackwell ordering theorems, `questionUtility_qud_nonneg`) lives
40+
under `Core/Agent/` to mirror its dependency on
41+
`Core/Agent/DecisionTheory.lean`.
42+
- Architectural choice: Direction A (Setoid-canonical) — `QUD`,
43+
`Question`, and partition primitives are co-located construction /
44+
consumption faces of the underlying `Setoid` rather than separately
45+
unified. Mirrors mathlib's non-unification of `Setoid` + `LowerSet`
46+
+ `IsPartition`.
47+
- **21 consumers migrated** (Linglib.lean + 20 importers) across
48+
`Theories/Semantics/Questions/`, `Theories/Semantics/Plurality/`,
49+
`Theories/Semantics/Focus/`, `Theories/Pragmatics/Dialogue/KOS/`,
50+
`Core/Discourse/`, and `Phenomena/Studies/`.
51+
52+
### Fixed
53+
- **`Interval Time` `[LE Time]` → `[LinearOrder Time]` cascade**
54+
(pre-existing build failure unrelated to partition work). The Time
55+
directory rename in 0.230.99 (commit f64da888) tightened
56+
`Interval Time` to require `[LinearOrder Time]`, but ~12 downstream
57+
files declaring functions/structures over `Ev Time` /
58+
`Eventuality Time` / `Interval Time` weren't propagated. Strengthened
59+
at definition sites (safe — `LinearOrder` extends `LE`) in:
60+
`Events/Basic.lean`, `Events/EventRelations.lean`,
61+
`Events/DegreeEvents.lean` (also `[LE Deg]` → `[LinearOrder Deg]`),
62+
`Events/ThematicRoles.lean`, `Attitudes/RationalAttitude.lean`,
63+
`Tense/TemporalAdverbials.lean`, `Quotation/Demonstration.lean`,
64+
`Morphology/ReversalRestitution.lean`,
65+
`Phenomena/TenseAspect/Studies/Cruse1973.lean`,
66+
`Phenomena/TenseAspect/Studies/OgiharaST2024.lean` (uses `T` rather
67+
than `Time`), `Phenomena/Comparison/Studies/Wellwood2015.lean`,
68+
`Phenomena/Gradability/Studies/CarianiSantorioWellwood2024.lean`,
69+
`Phenomena/Quotation/Studies/Rudin2025LI.lean`. Files using only `≤`
70+
(`Tense/Basic.lean::upperLimitConstraint`,
71+
`Modality/TemporalConstraint.lean`, `Core/Modality/HistoricalAlternatives.lean`)
72+
were left at `[LE Time]`.
73+
774
## [0.230.107] - 2026-04-20
875

976
### Changed

Linglib.lean

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,10 @@ import Linglib.Core.Semantics.PresuppositionContext
6060
import Linglib.Core.Semantics.Postsupposition
6161
import Linglib.Core.Semantics.ContentLayer
6262
import Linglib.Core.Agent.ProductOfExperts
63-
import Linglib.Core.Partition
63+
import Linglib.Core.Question.Partition.Lattice
64+
import Linglib.Core.Question.Partition.Cells
65+
import Linglib.Core.Question.Partition.Binary
66+
import Linglib.Core.Question.Partition.Negativity
6467
import Linglib.Core.Negation
6568
import Linglib.Core.Polarity
6669
import Linglib.Core.PolarityPartition
@@ -69,13 +72,13 @@ import Linglib.Core.Modality.ModalIndefinite
6972
import Linglib.Core.Modality.ModalBaseKind
7073
import Linglib.Core.Modality.ModalTypes
7174
import Linglib.Core.SelectionFunction
72-
import Linglib.Core.Question.QUD
75+
import Linglib.Core.Question.Partition.QUD
7376
import Linglib.Core.Question.PrecisionProjection
7477
import Linglib.Core.InfoState
7578
import Linglib.Core.Question.Support
7679
import Linglib.Core.Question.Basic
7780
import Linglib.Core.Question.Hamblin
78-
import Linglib.Core.Question.Partition
81+
import Linglib.Core.Question.Partition.Basic
7982
import Linglib.Core.Question.Singleton
8083
import Linglib.Core.Question.Answerhood
8184
import Linglib.Core.Question.Granularity
@@ -112,6 +115,7 @@ import Linglib.Core.Constraint.OT.Basic
112115
import Linglib.Core.Constraint.OT.ERC
113116
import Linglib.Core.Constraint.OT.Antimatroid
114117
import Linglib.Core.Agent.DecisionTheory
118+
import Linglib.Core.Agent.PartitionDT
115119
import Linglib.Core.Agent.BayesianUpdate
116120
import Linglib.Core.Agent.ExperimentDesign
117121
import Linglib.Core.Agent.RationalAction

0 commit comments

Comments
 (0)