The Maybe Monad: Presupposition as Scope #
@cite{grove-2022}
@cite{grove-2022} argues that presupposition projection is a scope phenomenon.
The key insight: presupposition triggers denote values of type α_# (= Option α),
and they interact with their semantic context by taking scope via monadic bind
(Option.bind), exactly paralleling @cite{charlow-2020}'s treatment of indefinites
with the set monad.
The Maybe monad (Option, some, bind) is the presuppositional analog of
@cite{charlow-2020}'s set monad (S, η, ⫝̸) for alternatives. Where S gives
scope to alternative-denoting expressions, Option gives scope to
presupposition triggers. Both derive exceptional scope from ASSOCIATIVITY.
Organization #
- §1 Connectives on
Option Bool: material conditional (middle Kleene), conjunction/disjunction (weak Kleene) - §2 The intensional-presuppositional monad
Iₚ(=ReaderT i Option) - §3 Monad laws for
Iₚ - §4 Semantic operations: evaluation
(·)^ž, presuppositional universal∀ₚ - §5 Attitude verb semantics:
believevia doxastic accessibility - §6 Bridge:
Option Bool ↔ Truth3 ↔ PrProp
The Maybe Monad as Presupposition #
Option is already a LawfulMonad in Lean. Grove's operators are:
| Grove notation | Lean | Type |
|---|---|---|
η_# | some | α → Option α |
⋆_# | Option.bind | Option α → (α → Option β) → Option β |
# | none | Option α |
The monad laws (Left Identity, Right Identity, Associativity from Figure 7) hold definitionally.
Parallel with the Set Monad #
| Alternatives (@cite{charlow-2020}) | Presupposition (@cite{grove-2022}) | |
|---|---|---|
| Monad | S α = α → Prop (sets) | Option α (maybe) |
| Unit | η_S(x) = {x} | η_#(v) = some v |
| Bind | m ⫝̸_S f = ⋃_{x∈m} f(x) | v ⋆_# k = k(v); # ⋆_# k = # |
| Effect | Indeterminacy | Partiality |
| Scope | Indefinites escape islands | Presuppositions project past filters |
§1 Connectives on Option Bool #
Grove uses two distinct gap-propagation policies:
- Middle Kleene for the material conditional
⇒: left-undefined absorbs, but right-undefined does NOT absorb when the left is false (⊥ ⇒ # = ⊤). - Weak Kleene for
∀_#: undefinedness absorbs from either side (⊥ ∧ # = #, unlike Strong Kleene where⊥ ∧ # = ⊥).
Material conditional ⇒ with middle Kleene semantics (Grove eq. 16).
⊤ ⇒ ψ = ψ, ⊥ ⇒ ψ = ⊤, # ⇒ ψ = #.
The conditional is true when its antecedent is false (regardless of the consequent's definedness), and propagates the consequent when the antecedent is true. Undefinedness in the antecedent absorbs.
Equations
Instances For
Weak Kleene conjunction (used by ∀ₚ).
Undefinedness absorbs from either side, then falsity absorbs.
In contrast, Strong Kleene has ⊥ ∧ # = ⊥, while Weak Kleene
has ⊥ ∧ # = #.
Equations
- Semantics.Composition.MaybeMonad.meetWK none x✝ = none
- Semantics.Composition.MaybeMonad.meetWK x✝ none = none
- Semantics.Composition.MaybeMonad.meetWK (some false) x✝ = some false
- Semantics.Composition.MaybeMonad.meetWK x✝ (some false) = some false
- Semantics.Composition.MaybeMonad.meetWK (some true) (some true) = some true
Instances For
Weak Kleene disjunction. Dual of meetWK.
Equations
- Semantics.Composition.MaybeMonad.joinWK none x✝ = none
- Semantics.Composition.MaybeMonad.joinWK x✝ none = none
- Semantics.Composition.MaybeMonad.joinWK (some true) x✝ = some true
- Semantics.Composition.MaybeMonad.joinWK x✝ (some true) = some true
- Semantics.Composition.MaybeMonad.joinWK (some false) (some false) = some false
Instances For
Negation preserves definedness.
Equations
Instances For
§2 The monad Iₚ #
Iₚ I α = I → Option α: the Reader monad transformer applied to the
Maybe monad. An expression of type Iₚ I α reads an index (world,
world-assignment pair, etc.) and returns a possibly-undefined value.
This monad treats intensionality and presupposition uniformly
(Grove §4.1): Iₚ is obtained by replacing t with t_# in
standard intensional types (i → t becomes i → t_#).
Iₚ I α: the intensional-presuppositional monad.
An expression of type Iₚ I α reads an index i and returns
some v if defined at i, or none if presupposition failure
occurs at i.
Equations
- Semantics.Composition.MaybeMonad.Iₚ I α = (I → Option α)
Instances For
bindI: bind for Iₚ. Evaluates m at index i; if defined,
feeds the result to k at the same index. Grove eq. 19, second line.
Equations
- Semantics.Composition.MaybeMonad.bindI m k i = do let v ← m i k v i
Instances For
§3 Monad laws #
The three laws from Figure 7 hold for Iₚ. Left Identity and
Associativity are the key properties for scope-taking: Left Identity
ensures that η + ⋆ = reconstruction (no scope), and Associativity
ensures that cyclic scope-taking (roll-up pied-piping) works.
Left Identity: lifting a value into the monad and immediately binding is the same as applying the continuation directly.
This is why global scope for a presupposition trigger that has been
locally η-shifted reconstructs to the local meaning (Grove fn. 13).
Associativity: sequential scope-taking = direct wide scope.
This is the presuppositional analog of @cite{charlow-2020}'s ASSOCIATIVITY theorem for the set monad. It guarantees that roll-up pied-piping (taking scope at an island edge, then further) yields the same result as direct scope-taking.
Backward compatibility: non-presuppositional expressions (those
wrapped in some) compose the same way they do without the monad.
This means traditional satisfaction-theoretic analyses that use only
defined values are preserved inside the monadic setting (Grove §5).
§4 Evaluation and presuppositional universal #
The evaluation function evalI (Grove's (·)^ž) converts an intension
that may be undefined into an intensional truth value that may be undefined,
by feeding the index to itself. The presuppositional universal forallP
(Grove's ∀_#) quantifies over a domain with weak-Kleene semantics.
Evaluation function (·)^ž (Grove eq. 20).
Given φ : Iₚ I (I → Bool) (a proposition that reads an index, possibly
undefined, to return an intension), evalI φ feeds the index to itself:
evalI φ i = (φ i).map (· i).
Equations
- Semantics.Composition.MaybeMonad.evalI φ i = Option.map (fun (x : I → Bool) => x i) (φ i)
Instances For
Presuppositional universal ∀_# (Grove eq. 27).
Uses weak Kleene semantics: none absorbs (if the scope is undefined
at any value, the whole universal is undefined).
Equations
- Semantics.Composition.MaybeMonad.forallP xs φ = List.foldl (fun (acc : Option Bool) (x : α) => Semantics.Composition.MaybeMonad.meetWK acc (φ x)) (some true) xs
Instances For
Presuppositional existential (dual of forallP).
Equations
- Semantics.Composition.MaybeMonad.existsP xs φ = List.foldl (fun (acc : Option Bool) (x : α) => Semantics.Composition.MaybeMonad.joinWK acc (φ x)) (some false) xs
Instances For
forallP with an undefined element is none.
Since meetWK has none as a zero element, once any φ(x) = none
is encountered, the accumulator becomes none and stays none.
§5 believe via doxastic accessibility #
Grove §4.2 (eq. 28): believe = λφ,x,i. ∀_# j : dox(x,i,j) ⇒ φ(j).
The verb quantifies over doxastically accessible worlds with ∀_# and
uses the material conditional ⇒. The ⇒ contributes the key
filtering behavior: when dox(x,i,j) = false, ⇒ returns some true
regardless of φ(j)'s definedness.
believe (Grove eq. 28).
Given an accessibility relation dox, a list of worlds, a complement
φ : Iₚ W Bool, an agent x, and an evaluation world i:
believe dox worlds φ x i = ∀_# j ∈ worlds : dox(x,i,j) ⇒ φ(j)
Equations
- Semantics.Composition.MaybeMonad.believe dox worlds φ x i = Semantics.Composition.MaybeMonad.forallP worlds fun (j : W) => Semantics.Composition.MaybeMonad.materialCond (some (dox x i j)) (φ j)
Instances For
§6 Bridges to existing linglib types #
Option Bool, Truth3, and PrProp W are three representations
of possibly-undefined truth values. These conversions connect Grove's
formalization to the rest of the presupposition infrastructure.
Middle Kleene implication on Truth3.
Equations
Instances For
materialCond corresponds to middle Kleene implication on Truth3.