Causative Interpretation (force-dynamic dispatch) #
Maps Causative verb classifications to their compositional semantics
under the force-dynamic view ([Tal88], [Wol03]),
which collapses enable/force/make into a single sufficiency
predicate (causallySufficient) distinguished post-hoc by isCoercive/isPermissive.
| Causative | Mechanism | English verbs | N&L property (derived) |
|---|---|---|---|
| cause | Counterfactual dependence | cause | necessity |
| make | Direct sufficient guarantee | make, have, get | sufficiency |
| force | Coercive (overcome resistance) | force | sufficiency + coercion |
| enable | Barrier removal (permissive) | let, enable | sufficiency |
| prevent | Barrier addition (blocking) | prevent | preventSem |
Theoretical commitment #
This file commits to the force-dynamic mapping. The competing
causal-model-theoretic view ([SBH09])
distinguishes enable from make/cause structurally: enable
asserts B := A ∧ X (accessory variable required), while cause asserts
B := A. Under that view, the present Causative.toSemantics
mis-classifies enable. The Sloman alternative dispatch — and a
divergence theorem witnessing the disagreement on enable — lives
in Studies/SlomanBarbeyHotaling2009.lean.
This is intentional. linglib does not pretend a single canonical mapping exists; both dispatches coexist as named functions and the disagreement is theorem-provable.
Methods on Features.Causative that depend on heavy semantic
machinery (Causation.SEM, CausalGraph, the Necessity/
Sufficiency/Prevention modules) live here rather than in
Features/Causation.lean, which is kept import-free per the
"Features/ stays lightweight" convention. The namespace Features.Causative block below is the standard mathlib pattern for
distributing methods on a type across files based on import weight.
The CC-selection mode associated with each variant.
.causeselects any necessary condition →memberOfSufficientSet.make/.force/.enableselect the completing condition →completionOfSufficientSet.preventselects the condition that blocks the effect →completionOfSufficientSet(the preventer completes the blocking set)
Equations
- Features.Causative.cause.selectionMode = Causation.CCSelection.CCSelectionMode.memberOfSufficientSet
- Features.Causative.make.selectionMode = Causation.CCSelection.CCSelectionMode.completionOfSufficientSet
- Features.Causative.force.selectionMode = Causation.CCSelection.CCSelectionMode.completionOfSufficientSet
- Features.Causative.enable.selectionMode = Causation.CCSelection.CCSelectionMode.completionOfSufficientSet
- Features.Causative.prevent.selectionMode = Causation.CCSelection.CCSelectionMode.completionOfSufficientSet
Instances For
Force-dynamic dispatch: map a causative classification to its V2 polymorphic semantic function.
Equations
- Features.Causative.toSemantics M Features.Causative.cause = Causation.Necessity.causeSem M
- Features.Causative.toSemantics M Features.Causative.make = Causation.Sufficiency.makeSem M
- Features.Causative.toSemantics M Features.Causative.force = Causation.Sufficiency.makeSem M
- Features.Causative.toSemantics M Features.Causative.enable = Causation.Sufficiency.makeSem M
- Features.Causative.toSemantics M Features.Causative.prevent = Causation.Prevention.preventSem M
Instances For
make and force are distinguished by coercion despite sharing truth conditions.
make and enable are distinguished by permissivity despite sharing truth conditions.
Causative encodes force-dynamic mechanisms; CCSelectionMode
([BBS25]) encodes which element of a causal
model the construction can select as "the cause." These are orthogonal
but connected: each variant has a canonical selection mode.
Sufficiency variants have completion selection mode.
Necessity variant has member selection mode.