Semantics of PIP #
This file defines the value of a term and the truth of a formula of PIP in a
model, relative to an assignment of pluralities to variables. Pluralities are
sets of atoms. A variable denotes its assignment; set abstraction ⋃{x : φ} and
summation Σxφ denote the union of the values of x over the assignments that
agree with the current one outside the bound variables (for summation, also
outside the local variables of φ) and satisfy φ. Presuppositions and label
definitions do not affect truth, and an unexpanded label is false. A discourse
φ₁, …, φₙ means Σw(φ₁ ∧ … ∧ φₙ) and is true iff that plurality of worlds is
nonempty.
Both kinds of expression are realized by one recursion, Expr.Realize, as a
relation to a point: an atom for a term, nothing for a formula.
Main definitions #
Model— the interpretation of relation symbols over pluralities.Expr.Realize,Term.realize,Formula.Realize— value and truth relative to a model and an assignment.
Main statements #
Formula.realize_atom,Formula.realize_conj, … — the clauses of truth, as simp lemmas;Formula.realize_disj, …,Formula.realize_some— the derived connectives.Formula.realize_exists_iff_abs_nonempty—∃xφis true iff⋃{x : φ}is nonempty, whenφis false of the null plurality.Term.realize_sigma_eq— the value of a summation from a characterization of its body.Expr.realize_elim— the PIP constructs are eliminable: the translation preserves values and truth.
References #
- [keshet-abney-2024]
- [abney-keshet-2025]
A model: pluralities are sets of atoms α, and each n-ary relation symbol
is interpreted over a world plurality and a tuple of n pluralities.
- I {n : ℕ} : P n → Set α → (Fin n → Set α) → Prop
The interpretation of relation symbols.
Instances For
The point at which an expression of a kind is realized: an atom, whose membership in a term's value is at stake, or nothing for a formula.
Equations
- PIP.Kind.Point α PIP.Kind.term = α
- PIP.Kind.Point α PIP.Kind.formula = PUnit.{?u.2 + 1}
Instances For
Realization: membership of an atom in the value of a term, and truth of a formula. A variable denotes its assignment, abstraction and summation the union of the values of the bound variable over assignments agreeing outside the bound variables; a formula is true classically, with presuppositions and label definitions transparent and an unexpanded label false.
Equations
- PIP.Expr.Realize M g (PIP.Expr.var x_3) a = (a ∈ g x_3)
- PIP.Expr.Realize M g (PIP.Expr.bvar x_3) a = (a ∈ g x_3)
- PIP.Expr.Realize M g (PIP.Expr.abs x_3 φ) a = ∃ (g' : V → Set α), Set.EqOn g' g {x_3}ᶜ ∧ a ∈ g' x_3 ∧ PIP.Expr.Realize M g' φ PUnit.unit
- PIP.Expr.Realize M g (PIP.Expr.sigma x_3 φ) a = ∃ (g' : V → Set α), Set.EqOn g' g {y : V | y ∉ φ.locals ∧ y ≠ x_3} ∧ a ∈ g' x_3 ∧ PIP.Expr.Realize M g' φ PUnit.unit
- PIP.Expr.Realize M g (s.inter t) a = (PIP.Expr.Realize M g s a ∧ PIP.Expr.Realize M g t a)
- PIP.Expr.Realize M g PIP.Expr.empty x_3 = False
- PIP.Expr.Realize M g PIP.Expr.top x_3 = True
- PIP.Expr.Realize M g (PIP.Expr.atom r w ts) x_3 = M.I r {a : α | PIP.Expr.Realize M g w a} fun (i : Fin n) => {a : α | PIP.Expr.Realize M g (ts i) a}
- PIP.Expr.Realize M g (s.eq t) x_3 = ({a : PIP.Kind.Point α PIP.Kind.term | PIP.Expr.Realize M g s a} = {a : PIP.Kind.Point α PIP.Kind.term | PIP.Expr.Realize M g t a})
- PIP.Expr.Realize M g (s.subset t) x_3 = ({a : PIP.Kind.Point α PIP.Kind.term | PIP.Expr.Realize M g s a} ⊆ {a : PIP.Kind.Point α PIP.Kind.term | PIP.Expr.Realize M g t a})
- PIP.Expr.Realize M g (s.mem t) x_3 = ∃ (a : PIP.Kind.Point α PIP.Kind.term), {b : PIP.Kind.Point α PIP.Kind.term | PIP.Expr.Realize M g s b} = {a} ∧ PIP.Expr.Realize M g t a
- PIP.Expr.Realize M g t.sg x_3 = ∃ (a : PIP.Kind.Point α PIP.Kind.term), {b : PIP.Kind.Point α PIP.Kind.term | PIP.Expr.Realize M g t b} = {a}
- PIP.Expr.Realize M g t.pl x_3 = ∃ (a : PIP.Kind.Point α PIP.Kind.term) (b : PIP.Kind.Point α PIP.Kind.term), a ≠ b ∧ PIP.Expr.Realize M g t a ∧ PIP.Expr.Realize M g t b
- PIP.Expr.Realize M g φ.neg x_3 = ¬PIP.Expr.Realize M g φ PUnit.unit
- PIP.Expr.Realize M g (φ.conj ψ) x_3 = (PIP.Expr.Realize M g φ PUnit.unit ∧ PIP.Expr.Realize M g ψ PUnit.unit)
- PIP.Expr.Realize M g (PIP.Expr.exists_ x_3 φ) x_4 = ∃ (g' : V → Set α), Set.EqOn g' g {x_3}ᶜ ∧ PIP.Expr.Realize M g' φ PUnit.unit
- PIP.Expr.Realize M g (PIP.Expr.labelDef X φ) x_3 = True
- PIP.Expr.Realize M g (PIP.Expr.label X) x_3 = False
- PIP.Expr.Realize M g (e.presup ψ) x✝ = PIP.Expr.Realize M g e x✝
Instances For
The value of a term.
Equations
- PIP.Term.realize M g t = {a : α | PIP.Expr.Realize M g t a}
Instances For
Truth of a formula.
Equations
- PIP.Formula.Realize M g φ = PIP.Expr.Realize M g φ PUnit.unit
Instances For
Derived clauses #
∃xφ is true iff ⋃{x : φ} is nonempty, provided φ is false when x is
the null plurality — the standing assumption that predicates are false of the
null individual.
The value of a summation whose body, on the assignments agreeing outside the summation variable and its locals, depends on the summation variable's value alone: the union of the pluralities satisfying that condition.
Eliminability #
The PIP constructs are eliminable: the translation preserves values and truth.