diff --git a/src/plugins/wp/doc/manual/wp_plugin.tex b/src/plugins/wp/doc/manual/wp_plugin.tex index ced0e554a743104ef506345196e498d3e5d933be..b89ca18abd9f3e48bdb709034e17c7ec072b388b 100644 --- a/src/plugins/wp/doc/manual/wp_plugin.tex +++ b/src/plugins/wp/doc/manual/wp_plugin.tex @@ -405,6 +405,30 @@ to apply the theorems. Such a strategy is \emph{not} complete in general. Typically, $\mathtt{land}(x,y) < 38$ is true whenever both $x$ and $y$ are in range $0\ldots 31$, but this is also true in other cases. +\paragraph{Bit-Test Range} Tighten Bounds with respect to bits \\ +The \lstinline{bit_test(a,b)} function is predefined in \textsf{WP} and is equivalent +to the \textsf{ACSL} expression \lstinline{(a & (1 << k)) != 0}. The +\textsf{Qed}Â engine has many simplification rules that applies to +such patterns. + +The user selects an expression $\mathtt{bit\_test}(n,k)$ with $k$ +a \emph{constant} integer value greater or equal to 0 and lower than +128. The tactic uses this test to thighten the bounds of $n$. + +$$\TACTIC{\Delta\models\,G}{% +\begin{array}[t]{ll} +\Delta,T &\models G \\ +\Delta,F &\models G +\end{array}} $$ + +with +$$\begin{array}[t]{rlcll} + T \equiv & \mathtt{bit\_test}(n,k) & \wedge & (0 \leq n & \Rightarrow 2^{k} \leq n) \\ + F \equiv & \neg \mathtt{bit\_test}(n,k) & \wedge & (0 \leq n < 2^{k+1} & \Rightarrow n < 2^{k}) + \end{array} +$$ + + \paragraph{Bitwise} Decompose equalities over $N$-bits\\ The use selects an integer equality and a number of bits. Providing the two members of the equality are in range $0..2^N-1$, @@ -422,11 +446,6 @@ where $\sigma$ is the following subsitution: \right] \] -The \lstinline{bit_test(a,b)} function is predefined in \textsf{WP} and is equivalent -to the \textsf{ACSL} expression \lstinline{(a & (1 << k)) != 0}. The -\textsf{Qed}Â engine has many simplification rules that applies to -such patterns, and the a tactic is good way to reason over bits. - \paragraph{Congruence} Simplify Divisions and Products \\ This tactic rewrites integer comparisons involving products and divisions. The tactic applies one of the following theorems to the current goal.