Deadlock boundary of infinite-run CTL*
TheoremNo existential path formula holds at a terminal state#✓fully proved
Cslib.CTLStar.not_stateSat_exists_of_terminal
No existential infinite path formula holds at a terminal state.
theorem not_stateSat_exists_of_terminal (hdead : lts.IsTerminal s) :
¬StateSat lts valuation (.exists π) s
def StateSat (lts : _root_.Cslib.LTS State Label) (valuation : State → Atom → Prop) :
StateFormula Atom → State → Prop
| .atom a, s => valuation s a
| .top, _ => True
| .not φ, s => ¬ StateSat lts valuation φ s
| .and φ ψ, s => StateSat lts valuation φ s ∧ StateSat lts valuation ψ s
| .exists π, s => ∃ run, run 0 = s ∧ LTS.OmegaRun (lts := lts) run ∧ PathSat lts valuation π run
| .forall π, s => ∀ run, run 0 = s → LTS.OmegaRun (lts := lts) run → PathSat lts valuation π run
CSLibExt/Logics/CTLStar/Basic.lean:105
TheoremUniversal path formulas hold vacuously at terminal states#✓fully proved
Cslib.CTLStar.stateSat_forall_of_terminal
Universal infinite path quantification is vacuous at a terminal state.
theorem stateSat_forall_of_terminal (hdead : lts.IsTerminal s) :
StateSat lts valuation (.forall π) s
def StateSat (lts : _root_.Cslib.LTS State Label) (valuation : State → Atom → Prop) :
StateFormula Atom → State → Prop
| .atom a, s => valuation s a
| .top, _ => True
| .not φ, s => ¬ StateSat lts valuation φ s
| .and φ ψ, s => StateSat lts valuation φ s ∧ StateSat lts valuation ψ s
| .exists π, s => ∃ run, run 0 = s ∧ LTS.OmegaRun (lts := lts) run ∧ PathSat lts valuation π run
| .forall π, s => ∀ run, run 0 = s → LTS.OmegaRun (lts := lts) run → PathSat lts valuation π run
CSLibExt/Logics/CTLStar/Basic.lean:105
2 fully proved
Loading dependency explorer…
The dependency explorer needs JavaScript and its graph data.