Metoda ověřování modelu (MC) pro konečně stavové systémy a lineární temporální logiku. Princip překladu formulí LTL na automaty nad nekonečnými slovy. Základní symbolické a explicitní algoritmy pro MC a jejich teoretická složitost.
Upozornění: bez nároku na úplnost a korektnost. Podle hesla „lepší něco než nic“. Ale snaha byla o co nejlepší výsledek.
Model checking problem is the problem to decide whether a given model (or system) satisfies a given specification. Specification is a formal description of some property that should be satisfied by the system. Specification is typically given as a formula of some temporal logic.
φ ::= T | a | ¬φ | φ1 ∧ φ2 | Xφ | φ1 U φ2
Fφ := T U φ
Gφ := ¬F¬φ
φ R ψ := ¬(¬φ U ¬ψ) … release
The set of atomic propositions occurring in a formula φ is denoted by AP(φ).
We define the semantics of LTL in terms of languages over infinite words. An alphabet is a set Σ = 2AP , where AP ⊆ AP is a finite subset. A word over alphabet Σ is an infinite sequence w = w(0)w(1)w(2)… ∈ Σ^ω of letters from Σ. For every i ∈ N0, by wi we denote the suffix of w of the form w(i)w(i + 1)w(i + 2)…
Validity of an LTL formula φ for w ∈ Σ^ω, written w |= φ, is defined as follows:
w |= T
w |= a iff a ∈ w(0)
w |= ¬φ iff w |!= φ
w |= φ1 ∧ φ2 iff w |= φ1 ∧ w |= φ2
w |= Xφ iff w1 |= φ
w |= φ1 U φ2 iff ∃i ∈ N0 : wi |= φ2 ∧ ∀ 0 ≤ j < i : wj |= φ1
Given an alphabet Σ, an LTL formula φ defines the language L^Σ (φ) = {w ∈ Σ^ω | w |= φ}.
V action-based LTL: w |= a ⇔ a = w(0).
In general, it means that all behaviours of the system satisfy the specification. In state-based LTL setting, it means that a given model M and a given LTL formula φ satisfy L^AP(φ) (M) ⊆ L^2^AP(φ) (φ). (To druhé je jazyk všech běhů, které splňují φ.)
Similarly, in action-based LTL setting, it means that a given model M and a given LTL formula φ satisfy L(M) ⊆ L^Act (φ).
State-based LTL MC je rozhodnutelný pro menší třídu systémů – klade omezení na Petriho sítě i PDA (decidable where validity of atomic propositions depends only on control state and the topmost stack symbol).
Time and space complexity of this algorithm is O(|M| · 2^O(|φ|)), where |M| is the number of states and transitions in the Kripke structure M. The LTL model checking problem is PSPACE-complete.
Pro každou Kripkeho strukturu M = (S, T, I, s0) lze sestrojit Büchi automat A_sys takový, že L_sys = L(A_sys).
Konstrukce Asys: Nechť AP je množina atomických propozic. Pak A_sys = (S, 2^AP, s0, δ, S), kde q ∈ δ(p, a) právě když (p, q) ∈ T ∧ I(p) = a.
1. Formule φ se převede do normální formy.
2. Vypočítá se přechodový graf budoucího automatu.
3. Graf se doplní na zobecněný Büchi automat.
4. Zobecněný BA se převede na standardní Büchi automat.
Řekneme, že LTL formule je v normální formě, pokud neobsahuje operátory F a G a všechny operátory unární negace jsou aplikovány na podformule tvořené pouze atomickou propozicí.
= Syntax =
φ ::= p | ¬p | φ ∨ φ | φ ∧ φ | X φ | φ U φ | φ R φ
= Pravidla pro převod do normální formy =
¬(φ ∨ ψ) ≡ (¬φ) ∧ (¬ψ)
¬(φ ∧ ψ) ≡ (¬φ) ∨ (¬ψ)
¬X φ ≡ X (¬φ)
¬(φ U ψ) ≡ (¬φ R ¬ψ)
¬(φ R ψ) ≡ (¬φ U ¬ψ)
= Zobecněný BA =
= Další BA =
A × B = (SA × SB × {0, 1}, Σ, (sA, sB, 0), δ_{A×B}, FA × SB × {0})
(p', q', j) ∈ δ_{A×B} ((p, q, i), a) pro všechna:
Redukce M |= φ na problém prázdnosti L(A_sys × A¬φ) – původně chceme L(A_sys) ⊆ L(A_φ), což je totéž jako prázdný průnik s komplementem L(φ).
state space enumeration, symbolic state space enumeration, abstract interpretation, symbolic simulation, symbolic trajectory evaluation, symbolic execution