Одномерные отношения можно преобразовать в наборы, и вы можете проверить наличие пересечений наборов. Если пересечение не эквивалентно ни одному из наборов, то ни одно из них не содержится в другом:
>>> a, b = (0 < x) & (x < oo), (0 > x) & (x > -oo)
>>> sa = a.as_set(); sb = b.as_set()
>>> sa
Interval.open(0, oo)
>>> sa.intersection(sb)
EmptySet
Поскольку пересечения вообще нет, эти наборы должны быть разными.
Вот случай, когда есть перекрытие (сдерживание):
>>> Interval(1, 3).intersection(sa)
Interval(1, 3)