def constraint_to_si(expr):
satisfiable = True<EOL>replace_list = [ ]<EOL>satisfiable, replace_list = backends.vsa.constraint_to_si(expr)<EOL>for i in xrange(len(replace_list)):<EOL><INDENT>ori, new = replace_list[i]<EOL>if not isinstance(new, Base):<EOL><INDENT>new = BVS(new.name, new._bits, min=new._lower_bound, max=new._upper_bound, stride=new._stride, explicit_name=True)<EOL>replace_list[i] = (ori, new)<EOL><DEDENT><DEDENT>return satisfiable, replace_list<EOL>
Convert a constraint to SI if possible.

:param expr:
:return: