Progressive Aspect and Causal Structure #
@cite{nadathur-bar-asher-siegal-2024} @cite{bar-asher-siegal-2026} @cite{dowty-1979}
The progressive picks out type-level causal processes rather than token-level completed events. This module formalizes the distinction using V2 SEMs, following @cite{nadathur-bar-asher-siegal-2024}'s reframing of the imperfective paradox through causal models.
Type-Level vs Token-Level #
@cite{bar-asher-siegal-2026}: SEM models distinguish two levels:
- Type-level: General causal structure (graph + mechanisms).
- Token-level: A specific causal trajectory completed in the actual world.
The Imperfective Paradox #
"Mary was opening the door" (progressive) vs "Mary opened the door" (perfective). The progressive entails the process is underway but NOT that it completed. "Mary was opening the door (when it got stuck)" is coherent — type-level process in progress, token-level result never obtained.
V2 substrate #
CausalProcess V is polymorphic over the vertex type. progressiveTrue
checks type-level sufficiency (the cause develops to the result via
developDetOn). perfectiveTrue adds token-level completion via a local
completesForEffect (defined inline to avoid the CCSelection cascade
during the V2 migration period).
A causal process for telic predicates, parameterized over a vertex type V.
Bundles a BoolSEM V (the type-level causal model), an explicit
vertex list (for developDetOn-based kernel reduction), the initiating
action vertex, the result vertex, and any enabling-condition valuation.
- M : Core.Causal.BoolSEM V
The type-level causal model.
- vertexList : List V
Topologically-ordered vertex list for structural unfolding.
- initiator : V
The initiating action vertex.
- result : V
The result-state vertex.
- enablingConditions : Core.Causal.Valuation fun (x : V) => Bool
Background enabling conditions (default: empty).
Instances For
Type-level sufficiency: the causal trajectory from initiator to result exists. The progressive asserts this — no commitment to the result actually obtaining in the actual world.
Equations
- proc.typeLevelHolds = (Core.Causal.SEM.developDetOn proc.M proc.vertexList 1 (proc.enablingConditions.extend proc.initiator true)).hasValue proc.result true
Instances For
Equations
- proc.instDecidableTypeLevelHolds = Classical.dec proc.typeLevelHolds
Progressive semantics: type-level process underway, completion open.
Equations
- proc.progressiveTrue = proc.typeLevelHolds
Instances For
Equations
- proc.instDecidableProgressiveTrue = Classical.dec proc.progressiveTrue
Local but-for completion test (avoids CCSelection import during migration): cause being true → effect; cause being false → ¬ effect.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- proc.instDecidableCompletesForEffect = Classical.dec proc.completesForEffect
Perfective semantics: token-level causation completed.
Holds when the causal chain ran to completion AND the initiator was necessary (removing it would prevent the result). This captures "Mary opened the door."
Equations
- proc.perfectiveTrue = proc.completesForEffect
Instances For
Equations
- proc.instDecidablePerfectiveTrue = Classical.dec proc.perfectiveTrue
Example: "Mary was opening the door" / "Mary opened the door." Simple model: Mary's action → door opens.
Vertex type for the door-opening example.
Instances For
Equations
- Semantics.Causation.Progressive.instDecidableEqMaryVar 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.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
Door-opening graph: doorOpen ← action.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Door-opening SEM: doorOpen := action.
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.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The progressive is true: Mary's action is type-level sufficient.
The perfective is true: Mary's action completed the process.
Perfective entails progressive (for the same process).
Witness for progressive ∧ ¬ perfective: an overdetermination model
where the type-level process exists but the actual outcome would
obtain regardless of the initiator.
Equations
- Semantics.Causation.Progressive.instDecidableEqOdVar 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.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
Equations
- One or more equations did not get rendered due to their size.
Instances For
R := A ∨ B (disjunctive overdetermination).
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.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Progressive holds for the overdetermination witness.
Perfective FAILS for the overdetermination witness — even with
initiator = false, the backup B in enablingConditions produces
the result.
Imperfective paradox: progressive does NOT entail perfective. Witnessed by the overdetermination scenario.
@cite{dowty-1979}: the progressive is true iff the outcome holds in all inertia worlds (normal continuations). The causal model account refines this: "normal continuation" means "the SEM develops the initiator into the result" — i.e., type-level sufficiency.
A causally grounded telic event: bridges CausalProcess (causal
explanation) with SubeventPhases (temporal realization).
@cite{nadathur-bar-asher-siegal-2024}: telic predicates encode structured causal models. The activity phase corresponds to the initiating action; the result phase corresponds to the effect variable. The causal model explains WHY the activity leads to the result: the initiator is type-level sufficient.
- process : CausalProcess V
The causal process underlying the event
- detInst : Core.Causal.SEM.IsDeterministic self.process.M
IsDeterministic instance for proc.M (carried explicitly).
- phases : Aspect.SubeventStructure.SubeventPhases Time
The temporal phases: activity and result with ordering
- causallyViable : self.process.typeLevelHolds
The causal trajectory is viable: initiator is type-level sufficient.