@normalize_types_one_arg<EOL><INDENT>def __sub__(self, other):<DEDENT>
deltas = [ ]<EOL>if isinstance(other, ValueSet):<EOL><INDENT>if self.regions.keys() == other.regions.keys():<EOL><INDENT>for region in self._regions:<EOL><INDENT>deltas.append(self._regions[region] - other._regions[region])<EOL><DEDENT><DEDENT>else:<EOL><INDENT>raise NotImplementedError()<EOL><DEDENT>delta = StridedInterval.empty(self.bits)<EOL>for d in deltas:<EOL><INDENT>delta = delta.union(d)<EOL><DEDENT>return delta<EOL><DEDENT>else:<EOL><INDENT>new_vs = self.copy()<EOL>new_vs._si = self._si.__sub__(other)<EOL>for region, si in new_vs._regions.items():<EOL><INDENT>new_vs._regions[region] = si - other<EOL><DEDENT>return new_vs<EOL><DEDENT>
Binary operation: subtraction

:param other: The other operand
:return: A StridedInterval or a ValueSet.