Где я ошибся в логическом выражении?

Вот само выражение - ((x ∈ P) ≡ (x ∈ Q)) → ¬(x ∈ A)

Вот мой код:

#Наибольшее -> remove
#Наименьшее -> append



p = list(range(5, 31))
q = list(range(14, 24))
a = list(range(52))

for x in range(52):
    if not(((x in p) == (x in q)) <= (x not in a)):
        a.remove(x)
print(a)

Вот сама задача, если кому надо:

На числовой прямой даны два отрезка: P = [5, 30] и Q = [14, 23]. Укажите наибольшую возможную длину промежутка A, для которого формула

((x ∈ P) ≡ (x ∈ Q)) → ¬(x ∈ A)

тождественно истинна, то есть принимает значение 1 при любом значении переменной х.

Вывод, который должен: [5, 6, 7, 8, 9, 10, 11, 12, 13, 14]

Мой вывод: [5, 6, 7, 8, 9, 10, 11, 12, 13]


Ответы (1 шт):

Автор решения: Stanislav Volodarskiy

sympy.Interval представляет отрезок прямой:

import sympy

p = sympy.Interval(5, 30)
q = sympy.Interval(14, 23)

r = p.symmetric_difference(q)
print(r)
$ python symdif.py
Union(Interval.Ropen(5, 14), Interval.Lopen(23, 30))
→ Ссылка