Documentation

Linglib.Logic.PIP.Semantics

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 #

Main statements #

References #

structure PIP.Model (P : Type w) (α : Type u) :
Type (max u w)

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 nSet α(Fin nSet α)Prop

    The interpretation of relation symbols.

Instances For
    def PIP.Kind.Point (α : Type u) :
    KindType u

    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
    Instances For
      def PIP.Expr.Realize {V : Type u} {L : Type v} {P : Type w} {α : Type u_1} [DecidableEq V] (M : Model P α) (g : VSet α) {k : Kind} :
      Expr V L P kKind.Point α kProp

      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
      Instances For
        def PIP.Term.realize {V : Type u} {L : Type v} {P : Type w} {α : Type u_1} [DecidableEq V] (M : Model P α) (g : VSet α) (t : Term V L P) :
        Set α

        The value of a term.

        Equations
        Instances For
          def PIP.Formula.Realize {V : Type u} {L : Type v} {P : Type w} {α : Type u_1} [DecidableEq V] (M : Model P α) (g : VSet α) (φ : Formula V L P) :

          Truth of a formula.

          Equations
          Instances For
            @[simp]
            theorem PIP.Term.mem_realize {V : Type u} {L : Type v} {P : Type w} {α : Type u_1} [DecidableEq V] (M : Model P α) (g : VSet α) {t : Term V L P} {a : α} :
            a realize M g t Expr.Realize M g t a
            @[simp]
            theorem PIP.Term.realize_var {V : Type u} {L : Type v} {P : Type w} {α : Type u_1} [DecidableEq V] (M : Model P α) (g : VSet α) (x : V) :
            realize M g (Expr.var x) = g x
            @[simp]
            theorem PIP.Term.realize_bvar {V : Type u} {L : Type v} {P : Type w} {α : Type u_1} [DecidableEq V] (M : Model P α) (g : VSet α) (x : V) :
            realize M g (Expr.bvar x) = g x
            @[simp]
            theorem PIP.Term.realize_inter {V : Type u} {L : Type v} {P : Type w} {α : Type u_1} [DecidableEq V] (M : Model P α) (g : VSet α) (s t : Term V L P) :
            realize M g (Expr.inter s t) = realize M g s realize M g t
            @[simp]
            theorem PIP.Term.realize_empty {V : Type u} {L : Type v} {P : Type w} {α : Type u_1} [DecidableEq V] (M : Model P α) (g : VSet α) :
            @[simp]
            theorem PIP.Term.realize_presup {V : Type u} {L : Type v} {P : Type w} {α : Type u_1} [DecidableEq V] (M : Model P α) (g : VSet α) (t : Term V L P) (ψ : Formula V L P) :
            realize M g (Expr.presup t ψ) = realize M g t
            theorem PIP.Term.mem_realize_abs {V : Type u} {L : Type v} {P : Type w} {α : Type u_1} [DecidableEq V] (M : Model P α) (g : VSet α) (x : V) (φ : Formula V L P) (a : α) :
            a realize M g (Expr.abs x φ) ∃ (g' : VSet α), Set.EqOn g' g {x} a g' x Formula.Realize M g' φ
            theorem PIP.Term.mem_realize_sigma {V : Type u} {L : Type v} {P : Type w} {α : Type u_1} [DecidableEq V] (M : Model P α) (g : VSet α) (x : V) (φ : Formula V L P) (a : α) :
            a realize M g (Expr.sigma x φ) ∃ (g' : VSet α), Set.EqOn g' g {y : V | yExpr.locals φ y x} a g' x Formula.Realize M g' φ
            @[simp]
            theorem PIP.Formula.realize_top {V : Type u} {L : Type v} {P : Type w} {α : Type u_1} [DecidableEq V] (M : Model P α) (g : VSet α) :
            Realize M g Expr.top True
            @[simp]
            theorem PIP.Formula.realize_atom {V : Type u} {L : Type v} {P : Type w} {α : Type u_1} [DecidableEq V] (M : Model P α) (g : VSet α) {n : } (r : P n) (w : Term V L P) (ts : Fin nTerm V L P) :
            Realize M g (Expr.atom r w ts) M.I r (Term.realize M g w) fun (i : Fin n) => Term.realize M g (ts i)
            @[simp]
            theorem PIP.Formula.realize_eq {V : Type u} {L : Type v} {P : Type w} {α : Type u_1} [DecidableEq V] (M : Model P α) (g : VSet α) (s t : Term V L P) :
            Realize M g (Expr.eq s t) Term.realize M g s = Term.realize M g t
            @[simp]
            theorem PIP.Formula.realize_subset {V : Type u} {L : Type v} {P : Type w} {α : Type u_1} [DecidableEq V] (M : Model P α) (g : VSet α) (s t : Term V L P) :
            Realize M g (Expr.subset s t) Term.realize M g sTerm.realize M g t
            @[simp]
            theorem PIP.Formula.realize_mem {V : Type u} {L : Type v} {P : Type w} {α : Type u_1} [DecidableEq V] (M : Model P α) (g : VSet α) (s t : Term V L P) :
            Realize M g (Expr.mem s t) ∃ (a : α), Term.realize M g s = {a} a Term.realize M g t
            @[simp]
            theorem PIP.Formula.realize_sg {V : Type u} {L : Type v} {P : Type w} {α : Type u_1} [DecidableEq V] (M : Model P α) (g : VSet α) (t : Term V L P) :
            Realize M g (Expr.sg t) ∃ (a : α), Term.realize M g t = {a}
            @[simp]
            theorem PIP.Formula.realize_pl {V : Type u} {L : Type v} {P : Type w} {α : Type u_1} [DecidableEq V] (M : Model P α) (g : VSet α) (t : Term V L P) :
            Realize M g (Expr.pl t) ∃ (a : α) (b : α), a b a Term.realize M g t b Term.realize M g t
            @[simp]
            theorem PIP.Formula.realize_neg {V : Type u} {L : Type v} {P : Type w} {α : Type u_1} [DecidableEq V] (M : Model P α) (g : VSet α) (φ : Formula V L P) :
            Realize M g (Expr.neg φ) ¬Realize M g φ
            @[simp]
            theorem PIP.Formula.realize_conj {V : Type u} {L : Type v} {P : Type w} {α : Type u_1} [DecidableEq V] (M : Model P α) (g : VSet α) (φ ψ : Formula V L P) :
            Realize M g (Expr.conj φ ψ) Realize M g φ Realize M g ψ
            theorem PIP.Formula.realize_exists {V : Type u} {L : Type v} {P : Type w} {α : Type u_1} [DecidableEq V] (M : Model P α) (g : VSet α) (x : V) (φ : Formula V L P) :
            Realize M g (Expr.exists_ x φ) ∃ (g' : VSet α), Set.EqOn g' g {x} Realize M g' φ
            @[simp]
            theorem PIP.Formula.realize_presup {V : Type u} {L : Type v} {P : Type w} {α : Type u_1} [DecidableEq V] (M : Model P α) (g : VSet α) (φ ψ : Formula V L P) :
            Realize M g (Expr.presup φ ψ) Realize M g φ
            @[simp]
            theorem PIP.Formula.realize_labelDef {V : Type u} {L : Type v} {P : Type w} {α : Type u_1} [DecidableEq V] (M : Model P α) (g : VSet α) (X : L) (φ : Formula V L P) :
            Realize M g (Expr.labelDef X φ) True
            @[simp]
            theorem PIP.Formula.realize_label {V : Type u} {L : Type v} {P : Type w} {α : Type u_1} [DecidableEq V] (M : Model P α) (g : VSet α) (X : L) :
            Realize M g (Expr.label X) False

            Derived clauses #

            theorem PIP.Formula.realize_disj {V : Type u} {L : Type v} {P : Type w} {α : Type u_1} [DecidableEq V] (M : Model P α) (g : VSet α) (φ ψ : Formula V L P) :
            Realize M g (φ.disj ψ) Realize M g φ Realize M g ψ
            theorem PIP.Formula.realize_impl {V : Type u} {L : Type v} {P : Type w} {α : Type u_1} [DecidableEq V] (M : Model P α) (g : VSet α) (φ ψ : Formula V L P) :
            Realize M g (φ.impl ψ) Realize M g φRealize M g ψ
            theorem PIP.Formula.realize_iff {V : Type u} {L : Type v} {P : Type w} {α : Type u_1} [DecidableEq V] (M : Model P α) (g : VSet α) (φ ψ : Formula V L P) :
            Realize M g (φ.iff_ ψ) (Realize M g φ Realize M g ψ)
            theorem PIP.Formula.realize_forall {V : Type u} {L : Type v} {P : Type w} {α : Type u_1} [DecidableEq V] (M : Model P α) (g : VSet α) (x : V) (φ : Formula V L P) :
            Realize M g (forall_ x φ) ∀ (g' : VSet α), Set.EqOn g' g {x}Realize M g' φ
            theorem PIP.Formula.realize_some {V : Type u} {L : Type v} {P : Type w} {α : Type u_1} [DecidableEq V] (M : Model P α) (g : VSet α) (s t : Term V L P) :
            Realize M g (some_ s t) (Term.realize M g s Term.realize M g t).Nonempty
            theorem PIP.Formula.realize_exists_iff_abs_nonempty {V : Type u} {L : Type v} {P : Type w} {α : Type u_1} [DecidableEq V] (M : Model P α) (g : VSet α) (x : V) (φ : Formula V L P) (h : ∀ (g' : VSet α), g' x = ¬Realize M g' φ) :
            Realize M g (Expr.exists_ x φ) (Term.realize M g (Expr.abs x φ)).Nonempty

            ∃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.

            theorem PIP.Term.realize_sigma_eq {V : Type u} {L : Type v} {P : Type w} {α : Type u_1} [DecidableEq V] (M : Model P α) (g : VSet α) {x : V} {φ : Formula V L P} {B : Set αProp} ( : ∀ (g' : VSet α), Set.EqOn g' g {y : V | yExpr.locals φ y x}(Formula.Realize M g' φ B (g' x))) :
            realize M g (Expr.sigma x φ) = {a : α | ∃ (X : Set α), a X B X}

            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 #

            theorem PIP.Formula.realize_closeList {V : Type u} {L : Type v} {P : Type w} {α : Type u_1} [DecidableEq V] (M : Model P α) (xs : List V) (φ : Formula V L P) (g : VSet α) :
            Realize M g (closeList xs φ) ∃ (g' : VSet α), Set.EqOn g' g {y : V | yxs} Realize M g' φ
            theorem PIP.Expr.realize_elim {V : Type u} {L : Type v} {P : Type w} {α : Type u_1} [DecidableEq V] (M : Model P α) {k : Kind} (e : Expr V L P k) (g : VSet α) (a : Kind.Point α k) :
            Realize M g e.elim a Realize M g e a

            The PIP constructs are eliminable: the translation preserves values and truth.

            theorem PIP.Term.realize_elim {V : Type u} {L : Type v} {P : Type w} {α : Type u_1} [DecidableEq V] (M : Model P α) (g : VSet α) (t : Term V L P) :
            realize M g (Expr.elim t) = realize M g t
            theorem PIP.Formula.realize_elim {V : Type u} {L : Type v} {P : Type w} {α : Type u_1} [DecidableEq V] (M : Model P α) (g : VSet α) (φ : Formula V L P) :
            Realize M g (Expr.elim φ) Realize M g φ