1
$\begingroup$

I am building an inference engine that uses interval analysis to compute variable bounds. Efficiency is very important in my case:

  • I cannot use SMT solvers
  • I cannot afford full enumeration, since real programs may contain variables with large domains.

So far I am using a classic interval domain — but I am running into precision issues.

Example:

  • Assume: a*(a - 1) = 0 and b*(b - 1) = 0 ⇒ a, b ∈ {0,1}

  • Now consider: out = (a + b) - a*b The exact range of out is {0,1}, but interval analysis gives:

 a + b ∈ [0,2] a * b ∈ [0,1] out ∈ [0,2] - [0,1] = [-1,2] 

The problem is that the analysis does not track how the values of a + b and a * b are correlated.


Could you please refer to techniques that could help me fix this problem in a way almost as cheap as plain intervals?
Is there perhaps a lightweight relational domain that is commonly used to keep such correlations and recover the tight [0,1] without sacrificing performance?
Or is that simply not possible without stepping into more expensive domains like octagons or polyhedra?

Any tips or references would be very helpful!

$\endgroup$

0

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.