def min(self, constraints, X: BitVec, M=<NUM_LIT>):
assert isinstance(X, BitVec)<EOL>return self.optimize(constraints, X, '<STR_LIT>', M)<EOL>
Iteratively finds the minimum value for a symbol within given constraints.

:param constraints: constraints that the expression must fulfil
:param X: a symbol or expression
:param M: maximum number of iterations allowed