collects(wolf, fauna).
collects(nuff, flora).
collects(nif, sport).
collects(nafa, cosmos).
left_of(wolf, nafa).
right_of(nif, cosmos).
opposite(nif, nafa).
% Кто собирает какие марки?
who_collects_what :-
collects(Who, What),
format('~w собирает ~w.\n', [Who, What]),
who_collects_what.
% Кто сидит где? (Информация неполная из-за противоречий)
location :-
(left_of(X, Y); right_of(X, Y); opposite(X, Y)),
format('~w находится ~w ~w.\n', [X, (member(Rel, [слева_от, справа_от, напротив])), Y]),
location.
% Кто не собирает марки "Спорт"? (Исправлено)
who_does_not_collect_sport :-
collects(Person, _), % Находим всех, кто что-то собирает
\+ collects(Person, sport),
format('~w не собирает "Спорт".\n', [Person]),
who_does_not_collect_sport.
слева_от(X,Y) :- left_of(X,Y).
справа_от(X,Y) :- right_of(X,Y).
напротив(X,Y) :- opposite(X,Y).
Y29sbGVjdHMod29sZiwgZmF1bmEpLgpjb2xsZWN0cyhudWZmLCBmbG9yYSkuCmNvbGxlY3RzKG5pZiwgc3BvcnQpLgpjb2xsZWN0cyhuYWZhLCBjb3Ntb3MpLgoKbGVmdF9vZih3b2xmLCBuYWZhKS4KcmlnaHRfb2YobmlmLCBjb3Ntb3MpLgpvcHBvc2l0ZShuaWYsIG5hZmEpLgoKJSDQmtGC0L4g0YHQvtCx0LjRgNCw0LXRgiDQutCw0LrQuNC1INC80LDRgNC60Lg/Cndob19jb2xsZWN0c193aGF0IDotCiAgICBjb2xsZWN0cyhXaG8sIFdoYXQpLAogICAgZm9ybWF0KCd+dyDRgdC+0LHQuNGA0LDQtdGCIH53LlxuJywgW1dobywgV2hhdF0pLAogICAgZmFpbC4Kd2hvX2NvbGxlY3RzX3doYXQuCgolINCa0YLQviDRgdC40LTQuNGCINCz0LTQtT8gKNCY0L3RhNC+0YDQvNCw0YbQuNGPINC90LXQv9C+0LvQvdCw0Y8g0LjQty3Qt9CwINC/0YDQvtGC0LjQstC+0YDQtdGH0LjQuSkKbG9jYXRpb24gOi0KICAgIChsZWZ0X29mKFgsIFkpOyByaWdodF9vZihYLCBZKTsgb3Bwb3NpdGUoWCwgWSkpLAogICAgZm9ybWF0KCd+dyDQvdCw0YXQvtC00LjRgtGB0Y8gfncgfncuXG4nLCBbWCwgKG1lbWJlcihSZWwsIFvRgdC70LXQstCwX9C+0YIsINGB0L/RgNCw0LLQsF/QvtGCLCDQvdCw0L/RgNC+0YLQuNCyXSkpLCBZXSksCiAgICBmYWlsLgpsb2NhdGlvbi4KCgolINCa0YLQviDQvdC1INGB0L7QsdC40YDQsNC10YIg0LzQsNGA0LrQuCAi0KHQv9C+0YDRgiI/ICjQmNGB0L/RgNCw0LLQu9C10L3QvikKd2hvX2RvZXNfbm90X2NvbGxlY3Rfc3BvcnQgOi0KICAgIGNvbGxlY3RzKFBlcnNvbiwgXyksICUg0J3QsNGF0L7QtNC40Lwg0LLRgdC10YUsINC60YLQviDRh9GC0L4t0YLQviDRgdC+0LHQuNGA0LDQtdGCCiAgICBcKyBjb2xsZWN0cyhQZXJzb24sIHNwb3J0KSwKICAgIGZvcm1hdCgnfncg0L3QtSDRgdC+0LHQuNGA0LDQtdGCICLQodC/0L7RgNGCIi5cbicsIFtQZXJzb25dKSwKICAgIGZhaWwuCndob19kb2VzX25vdF9jb2xsZWN0X3Nwb3J0LgoK0YHQu9C10LLQsF/QvtGCKFgsWSkgOi0gbGVmdF9vZihYLFkpLgrRgdC/0YDQsNCy0LBf0L7RgihYLFkpIDotIHJpZ2h0X29mKFgsWSkuCtC90LDQv9GA0L7RgtC40LIoWCxZKSA6LSBvcHBvc2l0ZShYLFkpLgo=