Documentation

Linglib.Semantics.Intensional.Defs

Intensional Logic: Types and Denotations #

[dowty-wall-peters-1981] [Gal75]

Foundations for intensional logic following DWP Ch. 6. Ty is the recursive grammar of semantic types; Denot E W computes denotation domains from explicit entity (E) and index (W) type parameters and a type.

Key definitions #

inductive Intensional.Ty :

Semantic types for Intensional Logic.

  • e — entities
  • t — truth values
  • fn a b — functions ⟨a,b⟩
  • intens a — intensions ⟨s,a⟩ (functions from indices to a-extensions)

The old Ty.s base type is replaced by the intens constructor: intensionality is a type-forming operation, not a separate domain.

Instances For
    @[implicit_reducible]
    instance Intensional.instReprTy :
    Repr Ty
    Equations
    def Intensional.instReprTy.repr :
    TyStd.Format
    Equations
    Instances For
      def Intensional.instDecidableEqTy.decEq (x✝ x✝¹ : Ty) :
      Decidable (x✝ = x✝¹)
      Equations
      Instances For
        def Intensional.«term_⇒_» :
        Lean.TrailingParserDescr
        Equations
        • Intensional.«term_⇒_» = Lean.ParserDescr.trailingNode `Intensional.«term_⇒_» 25 26 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " ⇒ ") (Lean.ParserDescr.cat `term 25))
        Instances For
          @[reducible, inline]

          Standard type abbreviations.

          Equations
          Instances For
            @[reducible, inline]

            ⟨s,t⟩ — propositions (sets of indices).

            Equations
            Instances For
              @[reducible, inline]

              ⟨s,e⟩ — individual concepts (index-dependent individuals).

              Equations
              Instances For

                A type is conjoinable if it "ends in t" ([PR83] Definition 4). Intension types ⟨s,a⟩ are conjoinable iff the base type is — conjunction is pointwise over indices.

                Equations
                Instances For
                  def Intensional.Denot (E W : Type) :
                  TyType

                  Denotation domains, computed from an entity type E, an index type W, and a semantic type.

                  DWP's model is ⟨A, W, T, <, F⟩; here E = A (the domain of individuals) and W = W × T (world-time pairs), or just W, or Unit for extensional. Temporal ordering, accessibility relations, etc. are structure on W, not baked in.

                  D_e = E D_t = Prop D_⟨a,b⟩ = D_a → D_b D_⟨s,a⟩ = W → D_a

                  Equations
                  Instances For
                    def Intensional.up {E W : Type} {a : Ty} (x : Denot E W a) :

                    ^α — form the rigid intension of an expression. Maps a denotation to the constant function over indices. Definitionally equal to Intensional.Intension.rigid.

                    Equations
                    Instances For
                      def Intensional.down {E W : Type} {a : Ty} (s : Denot E W a.intens) (i : W) :
                      Denot E W a

                      ˇα — extract the extension at index i. Evaluates an intension at a given index. Definitionally equal to Intensional.Intension.evalAt.

                      Equations
                      Instances For
                        theorem Intensional.down_up {E W : Type} {a : Ty} (x : Denot E W a) (i : W) :
                        down (up x) i = x

                        Down-up cancellation: ˇ(^α) = α at any index. DWP Theorem 1.

                        def Intensional.neg {E W : Type} (p : Denot E W Ty.t) :

                        Sentence negation.

                        Equations
                        Instances For
                          def Intensional.conj {E W : Type} (p q : Denot E W Ty.t) :

                          Sentence conjunction.

                          Equations
                          Instances For
                            def Intensional.disj {E W : Type} (p q : Denot E W Ty.t) :

                            Sentence disjunction.

                            Equations
                            Instances For
                              theorem Intensional.double_negation {E W : Type} (p : Denot E W Ty.t) :
                              neg (neg p) = p
                              def Intensional.predicateToSet {E W : Type} (p : Denot E W (Ty.e Ty.t)) :
                              Set E

                              Convert a predicate et to a Set (the extension).

                              Equations
                              Instances For
                                def Intensional.setToPredicate {E W : Type} (s : Set E) :

                                Convert a set to a predicate.

                                Equations
                                Instances For
                                  def Intensional.inExtension {E W : Type} (p : Denot E W (Ty.e Ty.t)) (x : E) :

                                  Membership in a predicate's extension.

                                  Equations
                                  Instances For
                                    def Intensional.uncurry {E W : Type} (f : Denot E W (Ty.e Ty.e Ty.t)) :
                                    E × EProp

                                    Uncurry a binary relation (obj-first) to a pair relation (subj-first).

                                    Equations
                                    Instances For
                                      def Intensional.curry {E W : Type} (r : E × EProp) :

                                      Curry a pair relation to a binary relation.

                                      Equations
                                      Instances For
                                        theorem Intensional.uncurry_curry {E : Type} (W : Type) (r : E × EProp) :
                                        uncurry (curry r) = r