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:qe_for_presburger_arithmetic [2008/04/17 10:42] david |
sav08:qe_for_presburger_arithmetic [2009/04/21 19:39] vkuncak |
||
---|---|---|---|
Line 4: | Line 4: | ||
We consider elimination of a quantifier from a conjunction of literals (because [[QE from Conjunction of Literals Suffices]]). | We consider elimination of a quantifier from a conjunction of literals (because [[QE from Conjunction of Literals Suffices]]). | ||
+ | |||
+ | |||
===== Normalizing Conjunctions of Literals ===== | ===== Normalizing Conjunctions of Literals ===== | ||
Line 29: | Line 31: | ||
$t_1 < t_2$ becomes ++| $0 < t_2 - t_1$++ | $t_1 < t_2$ becomes ++| $0 < t_2 - t_1$++ | ||
- | We obtain a disjunction of conjunctions of literals of the form $0 < t$ and $K \mid t$ where $t$ are | + | We obtain a disjunction of conjunctions of literals of the form $0 < t$ and $K \mid t$ where $t$ are of the form $K_0 + \sum_{i=1}^n K_i \cdot x_i$ |
Line 94: | Line 96: | ||
That's it! | That's it! | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
===== Example ===== | ===== Example ===== | ||
Line 100: | Line 107: | ||
How can we prove such verification condition? | How can we prove such verification condition? | ||
+ | |||
+ | The invariant of this code example is : $F = (res + 2i = 2x \wedge i' = i - 1 \wedge res' = res + 2) \rightarrow res' + 2i' = 2x$ | ||
+ | |||
+ | We have to find out if | ||
+ | $\neg F$ | ||
+ | is satisfiable. | ||
+ | |||
+ | $\exists res, res',i, i'. \neg F$ | ||
+ | |||
+ | We can eliminate quantifiers with equalities: $i'= i-1$ and $res' = res + 2$ | ||
+ | |||
+ | $res' + 2i'$ becomes $res + 2 + 2(i-1)$, and $\exists i', res' $ can be removed | ||
+ | |||
+ | Finally : | ||
+ | |||
+ | $\exists res, i. \neg (res + 2i = 2x \rightarrow res + 2 + 2(i-1) = 2x)$\\ | ||
+ | $\exists res, i. \neg (res + 2i = 2x \rightarrow res + 2i = 2x)$\\ | ||
+ | $\exists res, i. \neg true$\\ | ||
+ | $false$ | ||
===== Some Improvements ===== | ===== Some Improvements ===== |