# LTL 驗證算法疑問 ![下載](https://hackmd.io/_uploads/SJTg4SIgex.png) ## proof.K --- # LTL Formula * base on Propositional Logic ($\land$ $\lor$ $\rightarrow$ $\leftrightarrow$) * **X**a (Next) * **G**a (Globally) * **F**a (Finally) * a **U** b (Until) * a **W** b (Weak until) * a **R** b (Release) --- # $M,s \vDash P$ * **M** is <font color="#449df9">transition system</font> (model) * **s** is <font color="#449df9">state</font> * **P** is <font color="#449df9">LTL formula</font> --- # Transition System (model) ## $M = (S,\rightarrow,L)$ * **S** is set of states --- # $M = (S,\rightarrow,L)$ ## $\rightarrow$ is transition relation * $(a,b) \in \rightarrow$ : $a,b$ are <font color="#449df9">state </font> * $(a,b)$ : $a \rightarrow b$ --- # $M = (S,\rightarrow,L)$ ## $L$ is <font color="#449df9">labelling function</font> * $L$ : $S \rightarrow 2^{Atoms}$ * $2^{Atoms}$ is <font color="#449df9">LTL formula set</font> * $f \in L(a)$ : $f$ is true in <font color="#449df9">state a</font> --- # $M = (S,\rightarrow,L)$ (Transition System) is Graph ```graphviz digraph a { fontname="Helvetica,Arial,sans-serif" node [fontname="Helvetica,Arial,sans-serif"] edge [fontname="Helvetica,Arial,sans-serif"] a[label="p,q"] b[label="r"] c[label="p"] a -> a a -> b b -> c c -> a } ``` --- # $M,s \vDash P$ ## $M,s \vDash P$ if for every path $\pi$ of $M$ starting at $s$ , we have $\pi \vDash P$ --- # $\pi \vDash P$ ## path ```graphviz digraph a { fontname="Helvetica,Arial,sans-serif" node [fontname="Helvetica,Arial,sans-serif"] edge [fontname="Helvetica,Arial,sans-serif"] a[label="{p,q} a"] b[label="{r} b"] c[label="{p} c"] a -> a a -> b b -> c c -> a } ``` bcaaaa..... is a path starting at b --- # $\pi \vDash P$ * $\pi \vDash \top$ * $\pi \not \vDash \bot$ * $\pi \vDash P$ if $P \in L(s)$ ```graphviz digraph a { fontname="Helvetica,Arial,sans-serif" node [fontname="Helvetica,Arial,sans-serif"] edge [fontname="Helvetica,Arial,sans-serif"] a[label="{P,q} s"] a -> a } ``` --- # $\pi \vDash P$ * if $\pi \not \vDash P$ , then $\pi \vDash \neg P$ * if $\pi \vDash a$ and $\pi \vDash b$ , then $\pi \vDash a \land b$ * if $\pi \vDash a$ or $\pi \vDash b$ , then $\pi \vDash a \lor b$ --- # $\pi \vDash P$ * if $\pi \vDash b$ whenever $\pi \vDash a$ , then $\pi \vDash a \rightarrow b$ --- # $\pi \vDash P$ * if $\pi^{1} \vDash p$ , then $\pi \vDash X \ p$ --- # $\pi^{1} \vDash p ?$ * $\pi = s_{0}s_{1}s_{2}s_{3}s_{4}s_{5}...$ * $\pi^{1} = s_{1}s_{2}s_{3}s_{4}s_{5}...$ * $\pi^{4} = s_{4}s_{5}...$ --- # $\pi \vDash X \ p$ $\pi = sdf$ $\pi \vDash X \ a$ ```graphviz digraph a { rankdir = LR fontname="Helvetica,Arial,sans-serif" node [fontname="Helvetica,Arial,sans-serif"] edge [fontname="Helvetica,Arial,sans-serif"] s[label="{P,q} s"] d[label="{a} d"] f[label="{b} f"] s -> d d -> f } ``` --- # $\pi \vDash P$ * if $\pi^{i} \vDash p$ for every $i \ge 0$ , then $\pi \vDash G \ p$ $\pi = sdfgj$ $\pi \vDash G \ p$ ```graphviz digraph a { rankdir = LR fontname="Helvetica,Arial,sans-serif" node [fontname="Helvetica,Arial,sans-serif"] edge [fontname="Helvetica,Arial,sans-serif"] s[label="{p,q} s"] d[label="{p,a} d"] f[label="{p,b} f"] g[label="{p,e} g"] j[label="{p,v} j"] s -> d d -> f f -> g g -> j } ``` --- # $\pi \vDash P$ * if $\pi^{i} \vDash p$ for some $i \ge 0$ , then $\pi \vDash F \ p$ $\pi = sdfgj$ $\pi \vDash F \ b$ ```graphviz digraph a { rankdir = LR fontname="Helvetica,Arial,sans-serif" node [fontname="Helvetica,Arial,sans-serif"] edge [fontname="Helvetica,Arial,sans-serif"] s[label="{p,q} s"] d[label="{p,a} d"] f[label="{p,b} f"] g[label="{p,e} g"] j[label="{p,v} j"] s -> d d -> f f -> g g -> j } ``` --- # $\pi \vDash P$ * $\pi \vDash a \ U \ b$ if there is some $i \ge 0$ such that $\pi^{i} \vDash b$ and for every $i > j \ge 0$ , $\pi^{j} \vDash a$ $\pi = sdfgj$ $\pi \vDash p \ U \ e$ ```graphviz digraph a { rankdir = LR fontname="Helvetica,Arial,sans-serif" node [fontname="Helvetica,Arial,sans-serif"] edge [fontname="Helvetica,Arial,sans-serif"] s[label="{p,q} s"] d[label="{p,a} d"] f[label="{p,b} f"] g[label="{e} g"] j[label="{e,v} j"] s -> d d -> f f -> g g -> j } ``` --- # $\pi \vDash P$ * $\pi \vDash a \ W \ b$ $\pi \vDash a \ U \ b$ or $\pi \vDash G \ a$ --- # $\pi \vDash P$ * $\pi \vDash a \ R \ b$ $\pi \vDash G \ b$ or if there is some $i \ge 0$ such that $\pi^{i} \vDash a$ and for every $i \ge j \ge 0$ we have $\pi^{j} \vDash b$ ```graphviz digraph a { rankdir = LR fontname="Helvetica,Arial,sans-serif" node [fontname="Helvetica,Arial,sans-serif"] edge [fontname="Helvetica,Arial,sans-serif"] s[label="{p,q} s"] d[label="{p,a} d"] f[label="{p,e,b} f"] g[label="{p,e} g"] j[label="{p,e,v} j"] s -> d d -> f f -> g g -> j } ``` $\pi = sdfgj$ $\pi \vDash e \ R \ p$
{"title":"LTL 驗證算法疑問","contributors":"[{\"id\":\"ba6061cd-562a-4173-a475-cffdd5651baf\",\"add\":5447,\"del\":162}]","description":"base on Propositional Logic (==\\land \\lor \\rightarrow $\\leftrightarrow:w"}
    149 views