Reputation: 389
My current project involves counting/approximating the number of models in a set of constraints expressed in bit vector arithmetic. The model space is usually very large so enumerative methods will not scale very well. For instance:
A = BitVec('A', 32)
B = BitVec('B', 32)
solver.add(A>B)
The solution space would be 0.5 * 2 ** (2 * 32), beyond the reach of conventional probabilistic and enumerative models. There are existing tools, that I was hoping to use, such as http://arxiv.org/pdf/1507.00142.pdf, but it only works for LIA.
I was wondering if there are existing methods, or APIs that allows for such as abstraction. Otherwise the other option appears to be to manually translate all the clauses into LIA (linear integer arithmetic).
Upvotes: 2
Views: 102