A bilateral denotation: positive and negative update functions.
In bilateral semantics, a sentence φ denotes a pair of update functions:
positive: s[φ]⁺ - the result of asserting φ in state snegative: s[φ]⁻ - the result of denying φ in state s
Standard dynamic semantics only has positive updates. The negative dimension is what enables DNE and proper treatment of cross-disjunct anaphora.
Positive update: result of asserting the sentence
Negative update: result of denying the sentence
Instances For
Atomic proposition: lift a classical proposition to bilateral form.
For an atomic proposition p:
- s[p]⁺ = { w ∈ s | p(w) } (keep worlds where p holds)
- s[p]⁻ = { w ∈ s | ¬p(w) } (keep worlds where p fails)
Equations
- One or more equations did not get rendered due to their size.
Instances For
Negation: swap positive and negative updates.
This is the key insight of bilateral semantics. Negation doesn't "push in" - it simply swaps which update is positive and which is negative.
s[¬φ]⁺ = s[φ]⁻ s[¬φ]⁻ = s[φ]⁺
Instances For
Notation for negation
Equations
- One or more equations did not get rendered due to their size.
Instances For
Double negation is identity (DNE).
Negation is involutive
Conjunction: sequence positive updates, combine negative updates.
For conjunction φ ∧ ψ:
- s[φ ∧ ψ]⁺ = s[φ]⁺[ψ]⁺ (sequence: first assert φ, then ψ)
- s[φ ∧ ψ]⁻ = s[φ]⁻ ∪ (s[φ]⁺ ∩ s[ψ]⁻) (fail if φ fails OR φ succeeds but ψ fails)
The negative update reflects: a conjunction is denied if either conjunct could be denied.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Notation for conjunction
Equations
- One or more equations did not get rendered due to their size.
Instances For
Standard disjunction: choice between updates.
For standard disjunction φ ∨ ψ:
- s[φ ∨ ψ]⁺ = s[φ]⁺ ∪ s[ψ]⁺ (either disjunct holds)
- s[φ ∨ ψ]⁻ = s[φ]⁻ ∩ s[ψ]⁻ (both must fail to deny)
Equations
Instances For
Notation for disjunction
Equations
- One or more equations did not get rendered due to their size.
Instances For
Existential quantification: introduce a discourse referent.
For ∃x.φ:
- s[∃x.φ]⁺ = s[x:=?][φ]⁺ (introduce x, then assert φ)
- s[∃x.φ]⁻ = { p ∈ s | ∀e, p[x↦e] ∉ s[x:=?][φ]⁺ } (no witness makes φ true)
Equations
- One or more equations did not get rendered due to their size.
Instances For
Existential with full domain
Equations
- One or more equations did not get rendered due to their size.
Instances For
Universal quantification: ∀x.φ = ¬∃x.¬φ
In bilateral semantics, universal quantification is defined via de Morgan duality. This ensures proper interaction with negation.
Equations
- Semantics.Dynamic.Core.BilateralDen.forall_ x domain φ = ~(Semantics.Dynamic.Core.BilateralDen.exists_ x domain ~φ)
Instances For
Bilateral support: state s supports φ iff positive update is non-empty and s subsists in s[φ]⁺.
Equations
- Semantics.Dynamic.Core.BilateralDen.supports s φ = ((φ.positive s).consistent ∧ s ⪯ φ.positive s)
Instances For
Bilateral entailment: φ entails ψ iff for all consistent states s, s[φ]⁺ supports ψ.
Equations
- (φ ⊨ᵇ ψ) = ∀ (s : Semantics.Dynamic.Core.InfoState W E), (φ.positive s).consistent → Semantics.Dynamic.Core.BilateralDen.supports (φ.positive s) ψ
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Egli's theorem: ∃x.φ ∧ ψ ⊨ ∃x[φ ∧ ψ]
When an existential takes wide scope over conjunction, the variable it introduces is accessible in the second conjunct. This is the key property for cross-sentential anaphora.
In bilateral semantics, this follows from the sequencing of updates.
Create bilateral from predicate over entities
Equations
- One or more equations did not get rendered due to their size.
Instances For
Create bilateral from binary predicate
Equations
- One or more equations did not get rendered due to their size.
Instances For
Unilateral denotation: single update function
Equations
Instances For
Construct bilateral from pair
Instances For
Negation = swap on pairs
DNE follows from swap ∘ swap = id
Projection: bilateral → unilateral (forgets negative)
Equations
- φ.toUnilateral = φ.positive
Instances For
Equations
- Semantics.Dynamic.Core.BilateralDen.instInvolutiveNeg = { neg := Semantics.Dynamic.Core.BilateralDen.neg, neg_neg := ⋯ }