更多請溯源。下載請移步所鏈接之捷克網站。
File List:Tuesday, February 12, 2013
Sunday, February 10, 2013
Temp Post - An Integration
Friday, February 8, 2013
Labelled CNF Conversion and its Improvement
The CNF classical conversion is expensive although it preserves the equivalence. However, CNF labelled conversion maintains the equi-satisfiability, i.e., if the original formula is SAT, then so is the converted version.
The idea is to label a part of formula as a new variable and convert only the labelled ones, which we can derive it now.
$$ \phi \leftrightarrow \phi [(p \wedge q) | B] \wedge CNF_{label} (B \leftrightarrow (p \wedge q))$$where
\begin{align*} &CNF_{label} (B \leftrightarrow (p \wedge q)) \\ =& (\neg B \vee (p \wedge q)) \wedge (\neg (p \wedge q) \vee B) \\ =& (\neg B \vee p) \wedge (\neg B \vee q) \wedge (B \vee \neg p \vee \neg q)) \end{align*}The same applies for disjunction, implication and double implication.
Improved version
By utilizing the results we had in last post (polarity), we can simplify the $CNF_{label}$ procedure. For instance, if $p \wedge q$ occurs positively, we only proceed with $CNF_{label} (B \rightarrow (p \wedge q))$, on negative occurrence, we instead use $CNF_{label} ((p \wedge q) \rightarrow B)$
An example
Convert the following using improved $CNF_{label}$. Credit: R. Sebastiani.
$$(A_1 \wedge A_2) \vee (A_3 \wedge \neg A_4) \vee (\neg A_1 \wedge \neg A_3) \vee (A_2 \wedge \neg A_4)$$We start considering the whole formula as a sole variable $B$. And the rest conjunctions are $B_1$,$B_2$, $\cdots$, i.e.
$$\overbrace{\underbrace{(A_1 \wedge A_2)}_{B_1} \vee \underbrace{(A_3 \wedge \neg A_4)}_{B_2} \vee \underbrace{(\neg A_1 \wedge \neg A_3)}_{B_3} \vee \underbrace{(A_2 \wedge \neg A_4)}_{B_4}}^{B}$$Finally, $B_i$s all occur positively, then we only use one-side implication. i.e.
\begin{align*} &B \wedge (B \rightarrow (B_1 \vee B_2 \vee B_3 \vee B_4)) \\ & \wedge (B_1 \rightarrow (A_1 \wedge A_2)) \\ & \wedge \cdots \end{align*}Polarity in Propositional Logic
The polarity of a Boolean variable in a formula is recursively defined,
- $p$ occurs positively in $p$ itself.
- If $p$ occurs positively in $\phi$, then $\neg p$ occurs negatively in $\phi$, vice versa.
- If $p \wedge q$ or $p \vee q$ occur positively in $\phi$, then $p$ and $q$ occurs positively in $\phi$, and negatively for the negative occurrence.
- If $p \rightarrow q$ occurs positively in $\phi$, then $p$ negatively, $q$ positively. (i.e. $\neg p \vee q $)
- If $p \leftrightarrow q$ occurs in $\phi$, then $p$ and $q$ occur both negatively and positively in $\phi$.
Example:
$$B_1 \vee B_2 \vee B_3 \vee B_4$$$B_1 \vee ( \cdots)$ occurs positively in itself. $B_1$ occurs positively since the former disjunction occurs positively. The same for all the other variables.
Thursday, February 7, 2013
Clarke-Emerson Theorem
Appendix
- $[\mathbf{EX} \phi]$ is the existential pre-image of $[\phi]$.
- $\nu z. F z$ calculates the greatest fixed point.
- $\mu z. F z$ calculates the least fixed point.
- $\mathbf{EF} \phi = \mathbf{E}(\top \mathbf{U} \phi)$
Wednesday, February 6, 2013
Expressiveness of LTL, CTL, CTL*
Consider the following examples.
- $\mathbf{GF}p = \mathbf{AGAF}p = \mathbf{AGF} p$
- The existential quantifier is not possible in LTL. E.g., $\mathbf{EF}p$
- $\mathbf{FG}p \neq \mathbf{AFAG}p$, see Fig 1.
- $\mathbf{EFG}p \neq \mathbf{FG}p \neq \mathbf{EFAG} p$
- $\phi \in$ LTL $\Rightarrow \mathbf{A} \phi \in $CTL*
- All CTL formulae are automatically CTL*.
It says
- They can all express some common formulae.
- Some CTL formulae are not covered in LTL.
- Some LTL formulae can not be expressed by CTL.
- Some CTL* formulae are covered neither in CTL nor LTL.
- CTL* subsumes both CTL and LTL.
Tuesday, February 5, 2013
CTL Fixed-point Model Checking With Illustrations
\begin{tikzpicture}[node distance = 2.5cm] \tikzstyle{every state}=[fill=none] \node[state] (a) {N1,N2}; \node[above of=a,yshift=-1cm] {$[C_{1} \wedge C_{2}]$}; \node[state,xshift=-2cm] (b) [below left of=a]{T1,N2}; \node[state,xshift=2cm] (c) [below right of=a]{N1,T2}; \node[state] (d) [below left of=b]{C1,N2}; \node[state] (e) [below right of=b]{T1,T2}; \node[state] (f) [below left of=c]{T1,T2}; \node[state] (g) [below right of=c]{N1,C2}; \node[state] (h) [below right of=d]{C1,T2}; \node[state] (i) [below right of=f]{T1,C2}; \path[->] +(-1,1) edge (a); \path[->] (a) edge[red] (b) (a) edge (c) (b) edge[red] (d) (b) edge (e) (c) edge[red] (f) (c) edge (g) (d) edge (h) (e) edge[red] (h) (f) edge (i) (g) edge[red] (i); \draw[->] (i) .. controls +(180:4cm) and +(0:4cm) .. (b); \draw[->] (h) [red].. controls +(0:4cm) and +(180:4cm) .. (c); \path[->] (d) edge[red,bend left,out=60] (a); \path[->] (g) edge[bend right,out=-60] (a); \end{tikzpicture}To create a Bezier curve, we add some control points in the path, for instance:
\draw[->] (i) .. controls +(180:4cm) and +(0:4cm) .. (b);The procedure for checking some CTL properties is illustrated in this pdf file.
- AG¬(C1 ∧ C2 )
- AG(N1 → EFT1)