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:
PdlRule.exists_freeLandPdlRule.exists_freeR: the (L-) rule is always applicable to a loaded sequent, and it does not change the set of formulas.PdlRule.loadLAtomicandPdlRule.loadRAtomic: the (L+) rule applied to an atomic diamond~⌈·a⌉⌈⌈ηs⌉⌉ψ(whereψis not a box).Sequent.modTargettogether withPdlRule.modLTargetandPdlRule.modRTarget: the (M) rule applied to an atomic loaded box.Sequent.exists_atomic_modal_steps: the combination of (L+) and (M), giving thea-successor of a free basic sequent.
The (L-) rule #
The (L+) rule for atomic diamonds #
The (L+) rule applied to a free atomic diamond on the left.
Equations
- PDL.PdlRule.loadLAtomic h_in hnb = ⋯.mpr (⋯.mpr (PDL.PdlRule.loadL ⋯ hnb ⋯))
Instances For
The (L+) rule applied to a free atomic diamond on the right.
Equations
- PDL.PdlRule.loadRAtomic h_in hnb = ⋯.mpr (⋯.mpr (PDL.PdlRule.loadR ⋯ hnb ⋯))
Instances For
The (M) rule #
The sequent reached by the (M) rule from ⟨L, R, some (Sum.inl (~'⌊·A⌋ξ))⟩.
Equations
- PDL.Sequent.modTargetL A L R (PDL.AnyFormula.normal φ) = ({φ.neg} ∪ Finset.pdlProjection A L, Finset.pdlProjection A R, none)
- PDL.Sequent.modTargetL A L R (PDL.AnyFormula.loaded χ) = (Finset.pdlProjection A L, Finset.pdlProjection A R, some (Sum.inl (PDL.NegLoadFormula.neg χ)))
Instances For
The sequent reached by the (M) rule from ⟨L, R, some (Sum.inr (~'⌊·A⌋ξ))⟩.
Equations
- PDL.Sequent.modTargetR A L R (PDL.AnyFormula.normal φ) = (Finset.pdlProjection A L, {φ.neg} ∪ Finset.pdlProjection A R, none)
- PDL.Sequent.modTargetR A L R (PDL.AnyFormula.loaded χ) = (Finset.pdlProjection A L, Finset.pdlProjection A R, some (Sum.inr (PDL.NegLoadFormula.neg χ)))
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).
The (M) rule keeps the A-projection of the free part of the sequent.
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.
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.