1. A method for determining a solution to a set of constraints, comprising: generating a graph data structure representation, comprising one or more nodes, each node having an associated range; identifying a first plurality of bit-slice constraint nodes, each selecting from a range of bits of a first variable; converting the first plurality of bit-slice constraint nodes into a second plurality of bit-slice constraints, wherein none of the bit-slice constraints, of the second plurality of bit-slice constraints, select a range of bits that overlaps with a range of bits selected by any other of the bit-slice constraints; generating a value for the first variable that satisfies the second plurality of bit-slice constraints.