Sign Analysis as Symbolic Execution
Sign analysis performs Over-Approximation in symbolic execution
For variables the symbolic state is:
where is one of the formulas , , , or 'true' (and similarly for )
Initially, we approximate initial state (if unknown, then are true)
When we compute strongest postcondition, then we approximate it to obtain again formula in the previous form
Use a work-list algorithm to propagate symbolic state in the presence of loops
We go through loop several times until values stabilize
- illustration on our example