Relational vocabulary for nonempty intervals #
[All83] [KR93] [Kle94] [Pan03] [Sag86] [Smi97]
Extends mathlib's NonemptyInterval with the relational algebra
linguistic semantics consumes: overlap, precedence, meets, plus the
nuclear cluster needed by aspectual semantics (final subinterval,
initial overlap, isAfter/isBefore). Consumed as the time axis by tense,
aspect, and event semantics, and as the timing tier by autosegmental
phonology ([Sag86]).
Containment, the subinterval order, and point intervals are mathlib's
own API: t ∈ i (mem_def), i₁ ≤ i₂ (le_def), i₁ < i₂
(strict containment, see lt_def), pure t.
Generalized intervals with open/closed boundaries ([Rou26])
live with their consuming study in Studies/Rouillard2026.lean.
Relational vocabulary #
i₁ meets i₂ (i₁ ends exactly when i₂ starts).
Equations
- i₁.meets i₂ = (i₁.toProd.2 = i₂.toProd.1)
Instances For
An interval is a point iff its endpoints coincide. The atomic case in the time dimension — used by Bennett-Partee 1972 strict subinterval property and Zhao 2025 ATOM-DIST_t at the atomic granularity.
Equations
- i.IsPoint = (i.toProd.1 = i.toProd.2)
Instances For
Final subinterval: i₁ ⊆ i₂ and they share the same right endpoint. [Pan03]: PTS(i', i) iff i is a final subinterval of i'.
Equations
- i₁.finalSubinterval i₂ = (i₁ ≤ i₂ ∧ i₁.toProd.2 = i₂.toProd.2)
Instances For
Equations
- NonemptyInterval.instDecidableOverlaps = id inferInstance
Equations
- NonemptyInterval.instDecidableMeets = id inferInstance
Equations
- NonemptyInterval.instDecidableIsPoint = id inferInstance
Equations
- NonemptyInterval.instDecidableIsAfter = id inferInstance
Equations
- NonemptyInterval.instDecidableIsBefore = id inferInstance
Equations
- NonemptyInterval.instDecidableFinalSubinterval = id inferInstance
Final subintervals are subintervals.
Overlap is reflexive: every interval overlaps itself.
Overlap is symmetric.
Overlap is symmetric (iff version).
Membership in a nonempty interval is decidable when ≤ is.
Equations
- NonemptyInterval.instDecidableMemOfDecidableLE_linglib = decidable_of_iff' (s.toProd.1 ≤ a ∧ a ≤ s.toProd.2) ⋯
Strict containment is decidable when ≤ is.
Equations
- NonemptyInterval.instDecidableLtOfDecidableLE_linglib = decidable_of_iff' (s ≤ t ∧ ¬t ≤ s) ⋯
Initial overlap (∂): i₁ and i₂ overlap, and the start of i₂ is in i₁. [Pan03]: i ∂τ(e) — the beginning of the eventuality is included in the reference interval but the end may not be. [Smi97]: the neutral viewpoint uses the same interval relation.
Equations
- i₁.initialOverlap i₂ = (i₁.overlaps i₂ ∧ i₂.toProd.1 ∈ i₁)
Instances For
Equations
- NonemptyInterval.instDecidableInitialOverlapOfDecidableLE = id inferInstance
Equations
- NonemptyInterval.instDecidablePrecedesOfDecidableLE = id (decidable_of_iff' (i₁.toProd.2 ≤ i₂.toProd.1 ∧ ¬i₂.toProd.1 ≤ i₁.toProd.2) ⋯)
Every interval is a final subinterval of itself.
Subintervals overlap their containing intervals.
Precedence is irreflexive: no interval precedes itself.
Precedence is asymmetric.
Precedence and overlap are mutually exclusive.
Strict containment unfolded to endpoints: i₁ < i₂ iff i₁ ≤ i₂
with at least one strictly interior endpoint. The shape the IMPF
semantics consumes (reference time PROPERLY inside event runtime).
Overlap is NOT transitive: [0,1] overlaps [1,2] and [1,2] overlaps [2,3], but [0,1] does not overlap [2,3].
This is the cornerstone property that distinguishes overlap from simultaneity (identity) and makes the No-Crossing Constraint derivable from temporal precedence alone ([Sag86] §5.2.3, fn. 6).
Boundary type (open/closed endpoints) #
Whether an interval's boundary is included (closed) or excluded (open). [Rou26] §2.2.4: the distinction between closed and open times is central to deriving the polarity sensitivity of G-TIAs. Event runtimes are closed; PTSs are open intervals.
Consumed by GInterval (in Studies/Rouillard2026.lean).
- closed : BoundaryType
- open_ : BoundaryType
Instances For
Equations
- NonemptyInterval.instDecidableEqBoundaryType 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.