Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
sav08:fixed-width_bitvectors [2008/03/13 11:24] vkuncak |
sav08:fixed-width_bitvectors [2008/03/13 11:28] vkuncak |
||
---|---|---|---|
Line 35: | Line 35: | ||
Where $FV(F)=\{x_1,\ldots,x_n\}$ and $FV(prop(F)) = \{p_1,\ldots,p_m\}$. | Where $FV(F)=\{x_1,\ldots,x_n\}$ and $FV(prop(F)) = \{p_1,\ldots,p_m\}$. | ||
- | For each variable $x_1$ we initially introduce | + | For each bounded integer variable $x \in [0,2^B]$ we introduce propositional variables corresponding to its binary representation. |
- | These constructions correspond to implementing these operations in hardware circuits. | + | The constructions for operations correspond to implementing these operations in hardware circuits: |
* adder for + | * adder for + | ||
* shift for * | * shift for * | ||
* comparator for <, = | * comparator for <, = | ||
+ | |||
Note that subtraction can be expressed using addition, similarly for / and %. | Note that subtraction can be expressed using addition, similarly for / and %. | ||
++How to express inverse operations for nested terms?|Flat form of formulas.++ | ++How to express inverse operations for nested terms?|Flat form of formulas.++ | ||
- | Additional pre-processing is useful: | + | Additional pre-processing is useful. Much more on such encodings we will see later, and can also be found here: |
* [[http://www.springerlink.com/content/t57g3616p4756140/|Bitvectors and Arrays]] | * [[http://www.springerlink.com/content/t57g3616p4756140/|Bitvectors and Arrays]] | ||
+ | * [[http://www.decision-procedures.org/]] | ||
Later we will see how to prove that linear arithmetic holds for //all// bounds and not just given one. | Later we will see how to prove that linear arithmetic holds for //all// bounds and not just given one. | ||