Documentation

Pdl.PdlSteps

Concrete PDL rule applications #

Helpers to construct PdlRule applications, and to describe the sequents they lead to. These are used in Pdl/BuildTree.lean to walk through a BuildTree when proving the existence lemmas for the model graph.

The main results are:

The (L-) rule #

The (L-) rule is applicable to any left-loaded sequent, and the resulting sequent is obtained by inserting the unloaded formula on the left.

The (L-) rule is applicable to any right-loaded sequent.

Unloading does not change which formulas occur in a sequent.

Unloading does not change which formulas occur in a sequent.

The (L+) rule for atomic diamonds #

The (L+) rule applied to a free atomic diamond on the left.

Equations
Instances For

    The (L+) rule applied to a free atomic diamond on the right.

    Equations
    Instances For

      The (M) rule #

      The sequent reached by the (M) rule from ⟨L, R, some (Sum.inl (~'⌊·A⌋ξ))⟩.

      Equations
      Instances For

        The sequent reached by the (M) rule from ⟨L, R, some (Sum.inr (~'⌊·A⌋ξ))⟩.

        Equations
        Instances For

          The (M) rule applied to a left-loaded atomic box.

          Equations
          Instances For

            The (M) rule applied to a right-loaded atomic box.

            Equations
            Instances For

              The negation of the unloaded rest is in the sequent reached by (M).

              The negation of the unloaded rest is in the sequent reached by (M).

              theorem Sequent.projection_mem_modTargetL {A : } {L R : List Formula} {ξ : AnyFormula} {ρ : Formula} (h : (·Aρ) L (·Aρ) R) :
              ρ (modTargetL A L R ξ).bothSides

              The (M) rule keeps the A-projection of the free part of the sequent.

              theorem Sequent.projection_mem_modTargetR {A : } {L R : List Formula} {ξ : AnyFormula} {ρ : Formula} (h : (·Aρ) L (·Aρ) R) :
              ρ (modTargetR A L R ξ).bothSides

              The (M) rule keeps the A-projection of the free part of the sequent.

              Combining (L+) and (M) #

              Loading an atomic diamond keeps the sequent basic.

              Loading an atomic diamond keeps the sequent basic.

              theorem Sequent.exists_atomic_modal_steps {L R : List Formula} {a : } {ηs : List Program} {ψ : Formula} (hnb : ¬ψ.isBox) (hbas : basic (L, R, none)) (h_in : (~·a⌈⌈ηs⌉⌉ψ) bothSides (L, R, none)) :
              ∃ (Y1 : Sequent) (Y2 : Sequent), Nonempty (PdlRule (L, R, none) Y1) Y1.basic Nonempty (PdlRule Y1 Y2) (~⌈⌈ηs⌉⌉ψ) Y2.bothSides ∀ (ρ : Formula), (·aρ) bothSides (L, R, none)ρ Y2.bothSides

              Two PDL steps, first (L+) and then (M), lead from a free basic sequent containing the atomic diamond ~⌈·a⌉⌈⌈ηs⌉⌉ψ (with ψ not a box) to a sequent that contains ~⌈⌈ηs⌉⌉ψ and the whole a-projection of the sequent we started from.