Felicity of PIP formulas #
This file defines the felicity operator F on the terms and formulas of PIP.
A presupposition φ|ψ is felicitous iff φ and ψ are and ψ is true; a
conjunction φ ∧ ψ iff φ is and, whenever φ is true, ψ is; a quantifier,
abstraction or summation iff its body is for every value of the variables it
binds; the other connectives and relations iff their parts are. Felicity is
independent of truth. The PIP-value of a formula records its truth, its
felicity, its local variables and its label definitions, and two formulas are
intersubstitutable iff they have the same PIP-value in every model under every
assignment.
Main definitions #
Expr.Felicitous— the felicity operatorF.Value,Formula.value— the PIP-value of a formula.
Main statements #
Formula.felicitous_atom,Formula.felicitous_conj, … — the clauses of felicity, as simp lemmas;Formula.felicitous_disj, …,Formula.felicitous_some— the derived connectives.Expr.felicitous_of_presupFree— every infelicity traces to a presupposition.Term.felicitous_sigma_conj_of_felicitous— felicity of a discourse extended by a sentence reduces to the earlier discourse strictly implying the new sentence's felicity.
References #
- [keshet-abney-2024]
- [abney-keshet-2025]
- [karttunen-1974]
Felicity: e|ψ needs e and ψ felicitous and ψ true; abstraction,
summation and quantification need their bodies felicitous for every value; a
conjunction needs its first conjunct felicitous and, if it is true, its second
— the first conjunct may satisfy the presuppositions of the second.
Equations
- PIP.Expr.Felicitous M g (PIP.Expr.var x_2) = True
- PIP.Expr.Felicitous M g (PIP.Expr.bvar x_2) = True
- PIP.Expr.Felicitous M g (PIP.Expr.abs x_2 φ) = ∀ (g' : V → Set α), Set.EqOn g' g {x_2}ᶜ → PIP.Expr.Felicitous M g' φ
- PIP.Expr.Felicitous M g (PIP.Expr.sigma x_2 φ) = ∀ (g' : V → Set α), Set.EqOn g' g {y : V | y ∉ φ.locals ∧ y ≠ x_2} → PIP.Expr.Felicitous M g' φ
- PIP.Expr.Felicitous M g (s.inter t) = (PIP.Expr.Felicitous M g s ∧ PIP.Expr.Felicitous M g t)
- PIP.Expr.Felicitous M g PIP.Expr.empty = True
- PIP.Expr.Felicitous M g PIP.Expr.top = True
- PIP.Expr.Felicitous M g (PIP.Expr.atom r w ts) = (PIP.Expr.Felicitous M g w ∧ ∀ (i : Fin n), PIP.Expr.Felicitous M g (ts i))
- PIP.Expr.Felicitous M g (s.eq t) = (PIP.Expr.Felicitous M g s ∧ PIP.Expr.Felicitous M g t)
- PIP.Expr.Felicitous M g (s.subset t) = (PIP.Expr.Felicitous M g s ∧ PIP.Expr.Felicitous M g t)
- PIP.Expr.Felicitous M g (s.mem t) = (PIP.Expr.Felicitous M g s ∧ PIP.Expr.Felicitous M g t)
- PIP.Expr.Felicitous M g t.sg = PIP.Expr.Felicitous M g t
- PIP.Expr.Felicitous M g t.pl = PIP.Expr.Felicitous M g t
- PIP.Expr.Felicitous M g φ.neg = PIP.Expr.Felicitous M g φ
- PIP.Expr.Felicitous M g (φ.conj ψ) = (PIP.Expr.Felicitous M g φ ∧ (PIP.Formula.Realize M g φ → PIP.Expr.Felicitous M g ψ))
- PIP.Expr.Felicitous M g (PIP.Expr.exists_ x_2 φ) = ∀ (g' : V → Set α), Set.EqOn g' g {x_2}ᶜ → PIP.Expr.Felicitous M g' φ
- PIP.Expr.Felicitous M g (PIP.Expr.labelDef X φ) = True
- PIP.Expr.Felicitous M g (PIP.Expr.label X) = False
- PIP.Expr.Felicitous M g (e.presup ψ) = (PIP.Expr.Felicitous M g e ∧ PIP.Expr.Felicitous M g ψ ∧ PIP.Formula.Realize M g ψ)
Instances For
Every infelicity traces to a presupposition: an expression without presuppositions is felicitous.
Derived clauses #
F(φ ∨ ψ) iff Fφ ∧ (¬φ → Fψ).
F(φ → ψ) iff Fφ ∧ (φ → Fψ).
F(φ ↔ ψ) iff Fφ ∧ Fψ.
F(∀xφ) iff ∀x Fφ.
F(some(s, t)) iff Fs ∧ Ft.
Felicity of a discourse extended by a sentence: F Σw(γ ∧ φ) iff, for every
assignment of the world and the local variables, Fγ ∧ (γ → Fφ).
Given that the discourse so far is felicitous for all values of the local variables, the extended discourse is felicitous iff the discourse so far strictly implies the felicity of the new sentence.
Meanings #
The PIP-value of a formula. Two formulas are intersubstitutable iff they have the same value in every model under every assignment; truth-equivalent formulas need not be.
Equations
- PIP.Formula.value M g φ = { truth := PIP.Formula.Realize M g φ, felicity := PIP.Expr.Felicitous M g φ, locals := PIP.Expr.locals φ, defs := PIP.Expr.defs φ }