Documentation

Linglib.Theories.Semantics.Dynamic.Connectives.Assignment

Dynamic Quantification over Assignment E #

@cite{groenendijk-stokhof-1991} @cite{muskens-1996}

Substrate operations specialized to the Tarski-style assignment state Assignment E := Nat → E (from Core.Assignment).

AssignmentStructure (in Dynamic/Core/DynamicTy2.lean) takes abstract drefs S → E, but only projection drefs (fun g => g n) make sense for the concrete Assignment E type — there's no canonical way to extend g : Assignment E along an arbitrary (λ g => g 0 + g 1) : Assignment ℕ → ℕ. So the typeclass cannot be instantiated for Assignment E directly.

This file provides the natural-number-indexed operators that DPL, CDRT, FCS, PLA, and ICDRT all use under different paper-anchored names. They're substrate because they're fully generic over E, taking any Nat index.

OperatorPaper-anchored aliasType
randomAssignAt nDPL [x_n], FCS file-card openingDRS (Assignment E)
existsAt n φDPL ∃x_n.φ, CDRT [u_n]; φDRS (Assignment E) → DRS (Assignment E)
forallAt n φDPL ∀x_n.φDRS (Assignment E) → DRS (Assignment E)
closeAt φDPL ◇φ, K&R existential closureDRS (Assignment E) → DRS (Assignment E)

The existsAt / forallAt decomposition is mathlib-style: existsAt n is dseq after randomAssignAt n; forallAt n is test ∘ dneg ∘ existsAt n ∘ test ∘ dneg. The decomposition lemmas are immediate by definitional unfolding.

The "open file card n" operation: g[n↦?] non-deterministically.

Equations
Instances For

    existsAt n φ is dseq (randomAssignAt n) φ. Holds at (g, h) iff some witness d : E makes φ accept the input g[n↦d] and produce h.

    Equations
    Instances For
      @[simp]

      The decomposition: existsAt = dseq ∘ randomAssignAt.

      theorem Semantics.Dynamic.Core.existsAt_iff {E : Type u_1} (n : ) (φ : DynProp.DRS (Core.Assignment E)) (g h : Core.Assignment E) :
      existsAt n φ g h (d : E), φ (g.update n d) h

      Direct unfolding: existsAt n φ g h ↔ ∃ d : E, φ (g.update n d) h.

      forallAt n φ: a test that requires φ to succeed for every value at n. Definitionally test (dneg (existsAt n (test (dneg φ)))) — the standard DPL/Muskens reduction ∀ ≈ ¬∃¬.

      Equations
      Instances For
        theorem Semantics.Dynamic.Core.forallAt_iff {E : Type u_1} (n : ) (φ : DynProp.DRS (Core.Assignment E)) (g h : Core.Assignment E) :
        forallAt n φ g h g = h ∀ (d : E), (k : Core.Assignment E), φ (g.update n d) k

        Direct truth condition: forallAt n φ g h ↔ g = h ∧ ∀ d, ∃ k, φ (g.update n d) k.

        closeAt φ: a test that succeeds iff φ has any output. Equals test (closure φ) from Connectives.Defs.

        Equations
        Instances For