онец_суда (Вердикт),
відповідь1 = відповідь2, відповідь1 = Ответ3;
Ответ4 = "ні", Вердикт = вердикт (_, процес (_, відповідь1, відповідь2, _, _)),
конец_суда (Вердикт),
not (відповідь1 = відповідь2);
Ответ4 = "ні", Вердикт = вердикт (_, процес (_, відповідь1, _, _, Ответ3)),
конец_суда (Вердикт),
not (відповідь1 = Ответ3);
Ответ4 = "ні", Вердикт = вердикт (_, процес (_, _, відповідь2, _, Ответ3)),
конец_суда (Вердикт),
not (відповідь2 = Ответ3).
подсказка2 (Вердикт, Ответ5): -
Ответ5 = "так", Вердикт = вердикт (_, процес (_, відповідь1, відповідь2, _, Ответ3)),
конец_суда (Вердикт),
ОтветовНет> = 2;
Ответ5 = "ні", Вердикт = вердикт (_, процес (_, відповідь1, відповідь2, _, Ответ3)),
конец_суда (Вердикт),
ОтветовНет <2.
% Формуємо список гіпотез в яких людина з ім'ям Ім'я є шпигуном
шпигун (_, [], []).
% Перевірка якщо людина з ім'ям Ім'я не є шпигуном, то не додаємо в вихідний список
% Перевірка якщо людина з ім'ям Ім'я є шпигуном, то додаємо його до списку Out
шпигун (Ім'я, [InH | InT], [InH | OutT]):-InH =
(Ім'я, InT, OutT).
% Формуємо список гіпотез в яких людина з ім'ям Ім'я не є шпигуном
не_шпіон (_, [], []).
% Перевірка якщо людина з ім'ям Ім'я є шпигуном, то не додаємо в вихідний список
% Перевірка якщо людина з ім'ям Ім'я не є шпигуном, то додаємо його до списку Out
не_шпіон (Ім'я, [InH | InT], [InH | OutT]):-InH = процес (Персонажі, _, _, _, _), not (одін_із (персонаж
(Ім'я, шпигун), Персонажі)), не_шпіон (Ім'я, InT, OutT).
% Виняток неможливих гіпотез
исключить_невозможные_ответы ([], _, []): -!.
исключить_невозможные_ответы ([InH | InT], Ans, Out): - не_возможен (InH, Ans), исключить_невозможные_ответы
(InT, Ans, Out).
исключить_невозможные_ответы ([InH | InT], Ans, [InH | OutT]): - not (не_возможен (InH, Ans)), исключить_невозможные_ответы
(InT, Ans, OutT).
не_возможен (Процес, [_ | AnsT]): - не_возможен (Процес, AnsT).
рішення1 (Спісок_Унікальних_Решеній): -
(Спісок_Решеній, Спісок_Унікальних_Решеній).
Рі...