Тип 15 № 40731 
Преобразование логических выражений. Числовые отрезки
i
На числовой прямой даны два отрезка: P = [19; 84] и Q = [4; 51]. Укажите наименьшую возможную длину такого отрезка A, для которого формула
(x ∈ Q) → (¬(x ∈ P) → ¬((x ∈ Q) ∧ ¬(x ∈ A)))
тождественно истинна (то есть принимает значение 1 при любом значении переменной х).
Решение. Введем обозначения:
(x ∈ А) ≡ A; (x ∈ P) ≡ P; (x ∈ Q) ≡ Q.
Применив преобразование импликации, получаем:
Q → (¬P → ¬(Q ∧ ¬A)) = ¬Q ∨ P ∨ ¬Q ∨ A = ¬Q ∨ P ∨ A.
Логическое ИЛИ истинно, если истинно хотя бы одно утверждение. Условие ¬Q ∨ P истинно на множестве (−∞, 4) ∪ (19, +∞). Тогда A должно быть истинным на множестве [4; 19). Значит, наименьшая возможная длина интервала A равна 19 − 4 = 15.
Ответ: 15.
Примечание.
О длине отрезка написано в примечании к задаче 11119.
Приведём решение Сергея Донец на PascalABC.NET:
begin
var P := 19..84;var Q := 4..51;
var setX:=|P.First,P.Last,Q.First,Q.Last,-999,999|
.SelectMany(x->|x-0.1,x,x+0.1|);
setX.Order.Combinations(2).Select(m->m[0]..m[1])
.Where(A->setX.All(x->
(x in Q)<=(not(x in P)<=not((x in Q)and not(x in A)))
)).Min(A->A.Size).Round.Print;
end.
Ответ: 15