@normalize_types<EOL><INDENT>def sub(self, b):<DEDENT>
new_bits = max(self.bits, b.bits)<EOL>overflow = self._wrapped_overflow_sub(self, b)<EOL>if overflow:<EOL><INDENT>return StridedInterval.top(self.bits)<EOL><DEDENT>lb = self._modular_sub(self.lower_bound, b.upper_bound, new_bits)<EOL>ub = self._modular_sub(self.upper_bound, b.lower_bound, new_bits)<EOL>uninitialized = self.uninitialized or b.uninitialized<EOL>stride = fractions.gcd(self.stride, b.stride)<EOL>return StridedInterval(bits=new_bits, stride=stride, lower_bound=lb, upper_bound=ub,<EOL>uninitialized=uninitialized).normalize()<EOL>
Binary operation: sub

:param b: The other operand
:return: self - b