Documentation

Linglib.Logic.PIP.Syntax

Syntax of PIP #

This file defines the terms and formulas of PIP, a plural intensional presuppositional predicate calculus: first-order predicate calculus with set abstraction, equality, the set-theoretic relations , , , and the cardinality predicates SG and PL, extended by bracketed local variables [x], summation Σxφ, formula labels X ≡ φ with their uses X, world arguments on relation symbols, and presuppositions φ|ψ. Relation symbols are indexed by arity and take a world as a distinguished argument. Terms and formulas are one inductive type indexed by their kind.

It also defines the local variables of an expression, substitution for a variable, the presupposition-free expressions, the expansion of formula labels by their definitions, and the translation eliminating the PIP constructs. Truth is defined in Semantics.lean and felicity in Felicity.lean.

Main definitions #

References #

inductive PIP.Kind :

The kinds of PIP expressions.

Instances For
    inductive PIP.Expr (V : Type u) (L : Type v) (P : Type w) :
    KindType (max u v w)

    PIP expressions. Terms: external variables, bracketed local variables [x], set abstraction ⋃{x : φ}, summation Σxφ, intersection and the empty plurality. Formulas: the constant , predication P_w(τ₁, …, τₙ), equality, inclusion, membership, the cardinality predicates SG and PL, negation, conjunction, selective existential quantification, label definition X ≡ φ and label use X. An expression of either kind with a presupposition, e|ψ.

    Instances For
      @[reducible, inline]
      abbrev PIP.Term (V : Type u) (L : Type v) (P : Type w) :
      Type (max u v w)

      Terms.

      Equations
      Instances For
        @[reducible, inline]
        abbrev PIP.Formula (V : Type u) (L : Type v) (P : Type w) :
        Type (max u v w)

        Formulas.

        Equations
        Instances For
          def PIP.Formula.disj {V : Type u} {L : Type v} {P : Type w} (φ ψ : Formula V L P) :
          Formula V L P

          Disjunction, as ¬(¬φ ∧ ¬ψ).

          Equations
          Instances For
            def PIP.Formula.impl {V : Type u} {L : Type v} {P : Type w} (φ ψ : Formula V L P) :
            Formula V L P

            Implication, as ¬(φ ∧ ¬ψ).

            Equations
            Instances For
              def PIP.Formula.iff_ {V : Type u} {L : Type v} {P : Type w} (φ ψ : Formula V L P) :
              Formula V L P

              Biconditional, as (φ → ψ) ∧ (ψ → φ).

              Equations
              Instances For
                def PIP.Formula.forall_ {V : Type u} {L : Type v} {P : Type w} (x : V) (φ : Formula V L P) :
                Formula V L P

                Universal quantification, as ¬∃x¬φ.

                Equations
                Instances For
                  def PIP.Formula.some_ {V : Type u} {L : Type v} {P : Type w} (s t : Term V L P) :
                  Formula V L P

                  Overlap some(s, t), as ¬(s ∩ t = ∅).

                  Equations
                  Instances For
                    def PIP.Term.sgPronoun {V : Type u} {L : Type v} {P : Type w} (x : V) (φ : Formula V L P) :
                    Term V L P

                    Σxφ | SG(Σxφ): a singular summation pronoun over the description φ.

                    Equations
                    Instances For

                      Local variables and substitution #

                      def PIP.Expr.locals {V : Type u} {L : Type v} {P : Type w} [DecidableEq V] {k : Kind} :
                      Expr V L P kList V

                      The local variables of an expression: bracketed occurrences at top level, with summation, set abstraction and quantification binding theirs.

                      Equations
                      Instances For
                        def PIP.Term.bracket {V : Type u} {L : Type v} {P : Type w} :
                        Term V L PTerm V L P

                        Bracket a variable: [x] for x; other terms are unchanged.

                        Equations
                        Instances For
                          def PIP.Expr.subst {V : Type u} {L : Type v} {P : Type w} [DecidableEq V] (x : V) (t : Term V L P) {k : Kind} :
                          Expr V L P kExpr V L P k

                          Substitute t for the variable x, the β-reduction of λx: a bracketed occurrence [x] becomes the bracketed substitute, binders of x are skipped, and no capture check is made.

                          Equations
                          Instances For

                            Expressions without presuppositions #

                            def PIP.Expr.PresupFree {V : Type u} {L : Type v} {P : Type w} {k : Kind} :
                            Expr V L P kProp

                            An expression with no presupposition operator and no label use.

                            Equations
                            Instances For
                              def PIP.Expr.decPresupFree {V : Type u} {L : Type v} {P : Type w} {k : Kind} (e : Expr V L P k) :
                              Decidable e.PresupFree

                              Decidability of Expr.PresupFree.

                              Equations
                              Instances For
                                @[instance_reducible]
                                instance PIP.instDecidablePresupFree {V : Type u} {L : Type v} {P : Type w} {k : Kind} (e : Expr V L P k) :
                                Decidable e.PresupFree
                                Equations

                                Labels #

                                def PIP.Expr.substLabels {V : Type u} {L : Type v} {P : Type w} (A : LOption (Formula V L P)) {k : Kind} :
                                Expr V L P kExpr V L P k

                                Replace every label use by its definition under the assignment A, leaving undefined labels in place.

                                Equations
                                Instances For
                                  def PIP.Expr.defs {V : Type u} {L : Type v} {P : Type w} {k : Kind} :
                                  Expr V L P kList (L × Formula V L P)

                                  The label definitions occurring in an expression.

                                  Equations
                                  Instances For
                                    def PIP.assignment {V : Type u} {L : Type v} {P : Type w} [DecidableEq L] :
                                    List (L × Formula V L P)LOption (Formula V L P)

                                    The label assignment determined by a list of definitions: the first definition of each label.

                                    Equations
                                    Instances For
                                      def PIP.Formula.expand {V : Type u} {L : Type v} {P : Type w} [DecidableEq L] (A : List (L × Formula V L P)) (φ : Formula V L P) :
                                      Formula V L P

                                      Expand a formula by a list of label definitions: one round of simultaneous substitution per definition, which resolves every non-circular chain of definitions whatever their order.

                                      Equations
                                      Instances For
                                        def PIP.Formula.expandSelf {V : Type u} {L : Type v} {P : Type w} [DecidableEq L] (φ : Formula V L P) :
                                        Formula V L P

                                        Expand a formula by its own label definitions.

                                        Equations
                                        Instances For

                                          Eliminability #

                                          def PIP.Formula.closeList {V : Type u} {L : Type v} {P : Type w} (xs : List V) (φ : Formula V L P) :
                                          Formula V L P

                                          Existential closure over a list of variables, as syntax.

                                          Equations
                                          Instances For
                                            def PIP.Expr.elim {V : Type u} {L : Type v} {P : Type w} [DecidableEq V] {k : Kind} :
                                            Expr V L P kExpr V L P k

                                            Translation into predicate calculus with set abstraction: brackets and presuppositions are dropped, summation becomes abstraction over the closure of the other local variables, label definitions become .

                                            Equations
                                            Instances For