Documentation

Linglib.Semantics.Dynamic.DRS.Realizers

Realizers of basic DRSs #

A basic DRS over a context is true under an assignment of the context's referents when each of its literals holds, and the assignments that make it true are its realizers. Restriction along a context morphism precomposes assignments, so realizers restrict with the theories they realize, and the realizers of a theory are the verifying embeddings of its DRS. Gluing becomes a limit: an assignment realizes the least gluing of a family along a cover exactly when its restrictions realize the local theories, so the realizers of the gluing are the compatible families of local realizers.

Main definitions #

Main statements #

Implementation notes #

Abramsky and Sadrzadeh leave a sheaf-theoretic semantics of DRSs to future work; this file only shows that truth is compatible with their gluing.

References #

def DRT.Literal.Holds {L : FirstOrder.Language} {V : Type w} {M : Type x} {c : Context L V} [L.Structure M] (l : Literal c) (g : ↥c.vars → M) :

l.Holds g says that the assignment g makes l true, its atom holding when l is positive and failing when it is negative.

Equations
  • l.Holds g = (FirstOrder.Language.Structure.RelMap (↑l.rel).snd (g ∘ l.args) ↔ l.pos = true)
Instances For
    @[simp]
    theorem DRT.Literal.holds_map {L : FirstOrder.Language} {V : Type w} {M : Type x} {c c' : Context L V} [L.Structure M] (f : c ⟶ c') (l : Literal c) (g : ↥c'.vars → M) :
    (map f l).Holds g ↔ l.Holds (g ∘ f.map)
    theorem DRT.Literal.holds_comp_val_iff {L : FirstOrder.Language} {V : Type w} {M : Type x} {c : Context L V} [L.Structure M] (l : Literal c) (g : V → M) :
    l.Holds (g ∘ Subtype.val) ↔ (l.atom.Realize g ↔ l.pos = true)
    def DRT.Theory.realizers {L : FirstOrder.Language} {V : Type w} (M : Type x) {c : Context L V} [L.Structure M] (s : Theory c) :
    Set (↥c.vars → M)

    The realizers of a theory are the assignments of the context's referents that make each of its literals true.

    Equations
    Instances For
      theorem DRT.Theory.mem_realizers {L : FirstOrder.Language} {V : Type w} {M : Type x} {c : Context L V} [L.Structure M] {s : Theory c} {g : ↥c.vars → M} :
      g ∈ realizers M s ↔ ∀ l ∈ s.lits, l.Holds g
      theorem DRT.Theory.verifies_toDRS_iff {L : FirstOrder.Language} {V : Type w} {M : Type x} {c : Context L V} [L.Structure M] {s : Theory c} {g : V → M} :
      Verifies g s.toDRS ↔ g ∘ Subtype.val ∈ realizers M s

      An embedding verifies the DRS of a theory exactly when its restriction to the context's referents realizes the theory.

      theorem DRT.Theory.comp_val_mem_realizers_iff {L : FirstOrder.Language} {V : Type w} {M : Type x} {c : Context L V} [L.Structure M] {s : Theory c} (hpos : ∀ l ∈ s.lits, l.pos = true) {g : V → M} :
      g ∘ Subtype.val ∈ realizers M s ↔ g ∈ FirstOrder.Language.Atom.realizers M (Literal.atom '' ↑s.lits)

      For a theory of positive literals, an embedding realizes the theory on the context's referents exactly when it realizes the atoms of the theory.

      theorem DRT.Theory.comp_mem_realizers_restrict {L : FirstOrder.Language} {V : Type w} {M : Type x} {c c' : Context L V} [L.Structure M] [DecidableEq V] [(n : ℕ) → DecidableEq (L.Relations n)] {f : c ⟶ c'} {s : Theory c'} {g : ↥c'.vars → M} (h : g ∈ realizers M s) :
      g ∘ f.map ∈ realizers M (restrict f s)

      Restricting a theory along a context morphism keeps the restrictions of its realizers.

      def DRT.Cover.Compatible {L : FirstOrder.Language} {V : Type w} {M : Type x} {c : Context L V} {ι : Type u_1} (C : Cover c ι) (g : (i : ι) → ↥(C.part i).vars → M) :

      Local assignments are compatible when they agree wherever the cover identifies referents.

      Equations
      Instances For
        noncomputable def DRT.Cover.glueAssignment {L : FirstOrder.Language} {V : Type w} {M : Type x} {c : Context L V} {ι : Type u_1} {C : Cover c ι} (g : (i : ι) → ↥(C.part i).vars → M) (t : ↥c.vars) :
        M

        glueAssignment g assigns each referent the value a local assignment gives one of its preimages.

        Equations
        Instances For
          theorem DRT.Cover.glueAssignment_comp {L : FirstOrder.Language} {V : Type w} {M : Type x} {c : Context L V} {ι : Type u_1} {C : Cover c ι} {g : (i : ι) → ↥(C.part i).vars → M} (hg : C.Compatible g) (i : ι) :
          glueAssignment g ∘ (C.map i).map = g i
          theorem DRT.Cover.mem_realizers_iff {L : FirstOrder.Language} {V : Type w} {M : Type x} {c : Context L V} {ι : Type u_1} {C : Cover c ι} [L.Structure M] [Fintype ι] [DecidableEq V] [(n : ℕ) → DecidableEq (L.Relations n)] {x : (i : ι) → Theory (C.part i)} {s : Theory c} (hs : s.lits = C.pushforward x) {g : ↥c.vars → M} :
          g ∈ Theory.realizers M s ↔ ∀ (i : ι), g ∘ (C.map i).map ∈ Theory.realizers M (x i)

          An assignment realizes the least gluing of a family exactly when its restriction along every cover morphism realizes the local theory.

          noncomputable def DRT.Cover.realizersEquiv {L : FirstOrder.Language} {V : Type w} {M : Type x} {c : Context L V} {ι : Type u_1} {C : Cover c ι} [L.Structure M] [Fintype ι] [DecidableEq V] [(n : ℕ) → DecidableEq (L.Relations n)] {x : (i : ι) → Theory (C.part i)} {s : Theory c} (hs : s.lits = C.pushforward x) :
          ↑(Theory.realizers M s) ≃ { g : (i : ι) → ↑(Theory.realizers M (x i)) // C.Compatible fun (i : ι) => ↑(g i) }

          The realizers of the least gluing of a family are the compatible families of local realizers.

          Equations
          • One or more equations did not get rendered due to their size.
          Instances For