LARA

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revision Both sides next revision
msol_over_strings [2007/05/11 16:58]
ghid.maatouk
msol_over_strings [2007/05/27 13:34]
vaibhav.rajan
Line 1: Line 1:
 ====== MSOL over Strings ====== ====== MSOL over Strings ======
 +
  
  
Line 26: Line 27:
   [\![F_1 \lor F_2]\!]e &=& [\![F_1]\!]e\ \lor\ [\![F_2]\!]e \\ \   [\![F_1 \lor F_2]\!]e &=& [\![F_1]\!]e\ \lor\ [\![F_2]\!]e \\ \
   [\![\lnot F]\!]e &=& \lnot ([\![F]\!]e) \\ \   [\![\lnot F]\!]e &=& \lnot ([\![F]\!]e) \\ \
-  [\![\exists v. F]\!]e &=& \exists S. S\ \mbox{is finite}\ \land\ S \subseteq N_0[\![F]\!](e[v \mapsto S])+  [\![\exists v. F]\!]e &=& \exists S. S\ \mbox{is finite}\ \land\ S \subseteq N_0 \land [\![F]\!](e[v \mapsto S])
 \end{eqnarray*} \end{eqnarray*}
 +
 +
 +
  
  
Line 41: Line 45:
   * Intersection:​ $(A = B \cap C) = (A \subseteq B \land A \subseteq C) \land (\forall A_1. A_1 \subseteq B \land A_1 \subseteq C \rightarrow A_1 \subseteq A)$   * Intersection:​ $(A = B \cap C) = (A \subseteq B \land A \subseteq C) \land (\forall A_1. A_1 \subseteq B \land A_1 \subseteq C \rightarrow A_1 \subseteq A)$
   * Union: $(A = B \cup C) = (B \subseteq A \land C \subseteq A) \land (\forall A_1. B \subseteq A_1 \land C \subseteq A_1 \rightarrow A \subseteq A_1)$   * Union: $(A = B \cup C) = (B \subseteq A \land C \subseteq A) \land (\forall A_1. B \subseteq A_1 \land C \subseteq A_1 \rightarrow A \subseteq A_1)$
-  * Set difference: $(A = B \setminus C) = (A \cup C = B \land A \cap C = \emptyset)$+  * Set difference: $(A = B \setminus C) = (A \cup (B \cap C= B \land A \cap C = \emptyset)$
     (or just use element-wise definitions with singletons)     (or just use element-wise definitions with singletons)
   * If $k$ is a fixed constant, properties $\mbox{card}(A) \geq k$, $\mbox{card}(A)\leq k$, $\mbox{card}(A)=k$   * If $k$ is a fixed constant, properties $\mbox{card}(A) \geq k$, $\mbox{card}(A)\leq k$, $\mbox{card}(A)=k$
Line 54: Line 58:
 \end{equation*} \end{equation*}
  
 +This does not give the smallest set containing both $u$ and $v$. The reflexive transitive closure, T is:
 +\begin{equation*}
 +(F \subseteq T )\land (\forall x. x \in S \rightarrow (x,x) \in T ) \land ((\exists k.(u,k) \in T \land (k,v) \in T) \rightarrow ((u,v) \in T))
 +\end{equation*}
 +The underlying smallest set S containing $u$ and $v$ is given by:
 +\begin{equation*}
 +S = \{x | \exists k. ((k, x) \in T \lor (x,k) \in T) \}
 +\end{equation*} ​
 **Using transitive closure and successors:​** **Using transitive closure and successors:​**
   * Constant zero: $(x=0) = One(x) \land \lnot (\exists y. One(y) \land s(y,x))$   * Constant zero: $(x=0) = One(x) \land \lnot (\exists y. One(y) \land s(y,x))$
   * Addition by constant: $(x = y + c) = (\exists y_1,​\ldots,​y_{c-1}. s(y,y_1) \land s(y_1,y_2) \land \ldots \land s(y_{c-1},​x))$   * Addition by constant: $(x = y + c) = (\exists y_1,​\ldots,​y_{c-1}. s(y,y_1) \land s(y_1,y_2) \land \ldots \land s(y_{c-1},​x))$
   * Ordering on positions in the string: $(u \leq v) = ((u,v) \in \{(x,​y)|s(x,​y))\}^*$   * Ordering on positions in the string: $(u \leq v) = ((u,v) \in \{(x,​y)|s(x,​y))\}^*$
-  * Reachability in $k$-increments,​ that is, $\exists k \geq 0. y=x + c\cdot k$: $\mbox{Reach}_c(u,​v) = ((u,v) \in \{(x,y)\mid y=x+c\})$+  * Reachability in $k$-increments,​ that is, $\exists k \geq 0. y=x + c\cdot k$: $\mbox{Reach}_c(u,​v) = ((u,v) \in \{(x,y)\mid y=x+c\}^*)$
   * Congruence modulo $c$: $(x \equiv y)(\mbox{mod}\ c) = \mbox{Reach}_c(x,​y) \lor \mbox{Reach}_c(y,​x)$   * Congruence modulo $c$: $(x \equiv y)(\mbox{mod}\ c) = \mbox{Reach}_c(x,​y) \lor \mbox{Reach}_c(y,​x)$