Efficient Model Checking of Safety Properties

Summary

This partial ingest is based on the extracted full PDF text. Latvala studies how to recognize LTL safety properties and translate them into finite automata that recognize finite bad, or informative, prefixes. The paper presents the scheck implementation, compares finite-automata safety checking against full LTL-to-Buchi workflows, and argues that treating safety properties specially can reduce model-checking state spaces and improve debugging.

Key Claims

  • Safety-property violations are finite-prefix phenomena, so model checking need not always use full Buchi automata over infinite runs.
  • For non-pathological LTL safety formulas, finite automata recognizing informative prefixes can be singly exponential rather than doubly exponential.
  • Checking whether an LTL formula is pathological is PSPACE-complete in theory, but the paper’s implementation suggests the check can be feasible on tested formulas.
  • The scheck translator often produces smaller deterministic automata and product state spaces than standard LTL-to-Buchi approaches.
  • Gains are largest when debugging failing models because finite-prefix automata can stop as soon as the error is found.

Methods / Formalism

  • A bad prefix for an infinite-word language L is a finite word x such that every infinite extension x y lies outside L.
  • A safety language is one where every violating infinite word has a bad prefix.
  • The paper follows Kupferman and Vardi’s distinction among intentionally safe, accidentally safe, and pathologically safe LTL safety formulas, using informativeness to capture whether a finite prefix explains the violation.
  • scheck constructs finite automata for informative prefixes and includes a procedure for detecting pathological formulas.
  • Safety LTL Automata and Games records the shared bad-prefix automata story used by this paper and later synthesis work.

Evidence / Experiments

  • Random-formula experiments compare automata generated by scheck with LTL-to-Buchi translators such as ltl2ba and lbt.
  • Practical-model experiments use Spin on distributed-algorithm examples including Peterson, sliding, and Eratosthenes-style models.
  • In the reported table, scheck often yields smaller product state spaces and faster model-checking times, especially in failing/debugging cases.
  • Automata-generation time is a weakness: scheck can be slower than ltl2ba even when the resulting checking problem is smaller.

Connections

Open Questions

  • Which current wiki shielding notes rely on syntactic safety fragments versus semantic safety formulas that require recognition or rewriting?
  • Is a separate Model Checking of Safety Properties concept needed after more sources in this cluster are ingested, or can this stay under Safety and Co-Safety Properties and Runtime Verification?
  • How should pathological safety formulas be exposed to users of synthesis or monitoring tools?

Citation

Latvala, Timo. 2002. “Efficient Model Checking of Safety Properties.”