@staticmethod<EOL><INDENT>def _gap(src_interval, tar_interval):<DEDENT>
assert src_interval.bits == tar_interval.bits, "<STR_LIT>"<EOL>s = src_interval<EOL>t = tar_interval<EOL>(_, b) = (s.lower_bound, s.upper_bound)<EOL>(c, _) = (t.lower_bound, t.upper_bound)<EOL>w = s.bits<EOL>if (not t._surrounds_member(b)) and (not s._surrounds_member(c)):<EOL><INDENT>return StridedInterval(lower_bound=c, upper_bound=b, bits=w, stride=<NUM_LIT:1>).complement<EOL><DEDENT>return StridedInterval.empty(w)<EOL>
Refer section 3.1; gap function.

:param src_interval: first argument or interval 1
:param tar_interval: second argument or interval 2
:return: Interval representing gap between two intervals