Documentation

Linglib.Semantics.Dynamic.DRS.Presheaf

The presheaf of basic DRSs #

This file defines the presheaf of basic discourse representation structures on the category of contexts: at a context (L, X) its sections are the consistent finite sets of literals over the context, and restriction along a context morphism f is substitution-preimage, F(f)(s) ⊢ ±A(x̄) ⟺ s ⊢ ±A(f(x̄)). A section s at (L, X) is the basic DRS (X, s), which Theory.toDRS realises as a DRS whose conditions are literals.

Main definitions #

Main statements #

References #

structure DRT.Theory {L : FirstOrder.Language} {V : Type w} (c : Context L V) :
Type (max v w)

A consistent finite set of literals over a context — a basic DRS's conditions, whose deductive closure adds no literals.

  • lits : Finset (Literal c)

    The literals held true.

  • consistent (l : Literal c) : l self.litsl.negself.lits

    No literal occurs with both signs.

Instances For
    theorem DRT.Theory.ext_iff {L : FirstOrder.Language} {V : Type w} {c : Context L V} {x y : Theory c} :
    x = y x.lits = y.lits
    theorem DRT.Theory.ext {L : FirstOrder.Language} {V : Type w} {c : Context L V} {x y : Theory c} (lits : x.lits = y.lits) :
    x = y
    def DRT.Condition.IsLiteral {L : FirstOrder.Language} {V : Type w} :
    Condition L VProp

    A literal condition: an atom, or the negation of a one-atom box with no referents.

    Equations
    Instances For
      def DRT.DRS.IsBasic {L : FirstOrder.Language} {V : Type w} (K : DRS L V) :

      A basic DRS: every condition is a literal.

      Equations
      Instances For
        @[instance_reducible]
        instance DRT.Theory.instBot {L : FirstOrder.Language} {V : Type w} {c : Context L V} :
        Bot (Theory c)
        Equations
        @[simp]
        theorem DRT.Theory.lits_bot {L : FirstOrder.Language} {V : Type w} {c : Context L V} :
        .lits =
        noncomputable def DRT.Theory.toDRS {L : FirstOrder.Language} {V : Type w} {c : Context L V} (s : Theory c) :
        DRS L V

        The basic DRS (X, s) of a section: the context's referents with the literals as conditions.

        Equations
        Instances For
          @[simp]
          theorem DRT.Theory.referents_toDRS {L : FirstOrder.Language} {V : Type w} {c : Context L V} (s : Theory c) :
          theorem DRT.Theory.coe_conditions_toDRS {L : FirstOrder.Language} {V : Type w} {c : Context L V} (s : Theory c) :
          s.toDRS.conditions = Multiset.map Literal.toCondition s.lits.val
          theorem DRT.Theory.isBasic_toDRS {L : FirstOrder.Language} {V : Type w} {c : Context L V} (s : Theory c) :
          @[instance_reducible]
          instance DRT.Theory.instDecidableEq {L : FirstOrder.Language} {V : Type w} {c : Context L V} [DecidableEq V] [(n : ) → DecidableEq (L.Relations n)] :
          DecidableEq (Theory c)
          Equations
          def DRT.Theory.restrict {L : FirstOrder.Language} {V : Type w} {c c' : Context L V} [DecidableEq V] [(n : ) → DecidableEq (L.Relations n)] (f : c c') (s : Theory c') :

          Restriction along a context morphism: F(f)(s) ⊢ ±A(x̄) ⟺ s ⊢ ±A(f(x̄)).

          Equations
          Instances For
            @[simp]
            theorem DRT.Theory.mem_restrict {L : FirstOrder.Language} {V : Type w} {c c' : Context L V} [DecidableEq V] [(n : ) → DecidableEq (L.Relations n)] {f : c c'} {s : Theory c'} {l : Literal c} :
            l (restrict f s).lits Literal.map f l s.lits
            def DRT.presheaf (L : FirstOrder.Language) (V : Type w) [DecidableEq V] [(n : ) → DecidableEq (L.Relations n)] :
            CategoryTheory.Functor (Context L V)ᵒᵖ (Type (max v w))

            The presheaf of basic DRSs: theories at each context, restriction along context morphisms.

            Equations
            • One or more equations did not get rendered due to their size.
            Instances For
              @[simp]
              theorem DRT.presheaf_obj {L : FirstOrder.Language} {V : Type w} [DecidableEq V] [(n : ) → DecidableEq (L.Relations n)] (c : (Context L V)ᵒᵖ) :
              (presheaf L V).obj c = Theory (Opposite.unop c)
              @[simp]
              theorem DRT.presheaf_map {L : FirstOrder.Language} {V : Type w} [DecidableEq V] [(n : ) → DecidableEq (L.Relations n)] {c c' : (Context L V)ᵒᵖ} (f : c c') (s : Theory (Opposite.unop c)) :
              (CategoryTheory.ConcreteCategory.hom ((presheaf L V).map f)) s = Theory.restrict f.unop s