From 09f3e612bd9042b874fdb5089c4a03bd9f0f3aab Mon Sep 17 00:00:00 2001 From: Haniel Barbosa <hanielbbarbosa@gmail.com> Date: Wed, 18 Oct 2023 15:41:21 -0300 Subject: [PATCH] defining bitblasting rules --- spec/doc.tex | 5 +++++ spec/rule_list.tex | 15 +++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/spec/doc.tex b/spec/doc.tex index c0b26f1..c354011 100644 --- a/spec/doc.tex +++ b/spec/doc.tex @@ -1790,3 +1790,8 @@ standard.\footnote{See \url{https://smt-lib.github.io/theories-FixedSizeBitVecto \bibliography{publications} \end{document} + +%%% Local Variables: +%%% mode: latex +%%% TeX-master: t +%%% End: diff --git a/spec/rule_list.tex b/spec/rule_list.tex index 0f1b08d..a182005 100644 --- a/spec/rule_list.tex +++ b/spec/rule_list.tex @@ -1530,6 +1530,21 @@ constants are unfolded during proof printing. Hence, the slightly strange form and the reordering of equalities. \end{RuleDescription} +\begin{RuleDescription}{bitblast_extract} +\begin{AletheX} +$i$. & \ctxsep & $((\_\ \mathrm{extract}\ i\ j)\ x) \simeq (\mathrm{bbterm}\ x_j; \ldots; x_i)$ & (\currule) \\ +\end{AletheX} + +Each term $x_i$ corresponds to whether $i$-th bit of $x$ is true or not, which +will be represented via an application of the operator ``bit\_of'', i.e., +$((\_\ bit\_of\ i)\ x)$, which has a Boolean return type. +% +The ``bbterm'' operator takes $n$ Booleans and yields a bit-vector of size $n$ +where the least significant bit is is 1 if the $n$-th argument is true, 0 +otherwise, and so on. + +\end{RuleDescription} + \clearpage \subsection{Index of Rules} \label{sec:alethe:rules-index} -- GitLab