Dear all,
If I understand correctly, the
input for a PPL solver is a linear constraint system $C$, and the output
is a (not always) optimal polyhedron represented as linear constraints
that cover the points satisfying the original constraint system $C$.
My question is, to use the library in practice, what are we supposed to
do to convert Cousot's propagation-rule into a PPL's input which is a
linear constraint system. ( Sankaranarayanan gave an algorithm using
dualization and Farkas's lemma to compile a linear transition system
into a constraint system, however I think there should be other prefered
ways to do that because Sankaranarayanan's paper appeared later than
PPL. )
Here is an example:
1 x=0;
2: while (x<10){
3: x = x+1;
4 }
5
Denote X[i] to be the set of possible values of 'x' at the program point
'i'. Then, the propagation-rule ŕ la Cousot should be direct
X[1] = \emptyset
X[2] \supset {0} \union X[4]
X[3] \supset X2 \intersect (-\infinity, 10)
X[4] \supset {x+1 | x\in X[4]}
X[5] \supset X2 \intersect [10,\infinity)
How can we convert these set-constraints into PPL's input ?
Thanks for your ideas.
Zell.