Ответ в теме: Логическая задача: Все сладкоежки любят лакомиться пирожными и Конфетами.

      Комментарии к записи Ответ в теме: Логическая задача: Все сладкоежки любят лакомиться пирожными и Конфетами. отключены
#1865

Тебе не нужны правила про толстых — это лишние данные в задаче (или задачу не до конца переписал).
Стоит вопрос “Кто и чем любит лакомиться?”, т.е. нужно установить соответствие между людьми и продуктами.

Для начала надо более четко классифицировать объекты, с которыми придется работать в задаче:

вид(конфета, трюфель).
вид(пирожное, эклер).
 
сладкоежка('Таня').

В задачи фигурируют более общие виды продуктов, такие как “пирожные”, которыми могут быть не только эклеры, хотя в условии задачи других пирожных нет. Без этих усложнений задача тривиальна, я думаю что они нужны тут.
В задаче есть информация о том, какие виды продуктов любят сладкоежки, занесем это в базу:

сладкоежка_любит(пирожное).
сладкоежка_любит(конфета).

Осталось определить функции. Если есть сладкоежки, то есть и другие, которые любят те продукты, которые не едят сладкоежки:

не_сладкоежка(X):- 
  сладкоежка(X), !, fail;!.
 
любит(X, Y):- 
  сладкоежка(X), !, сладкоежка_любит(Type), вид(Type, Y);
  не_сладкоежка(X), !, не_сладкоежка_любит(Type), вид(Type, Y).

Если мы сейчас спросим у машины логического вывода “кто что любит” – получим информацию лишь про Таню и эклеры, но можно добавить в задачу другие виды продуктов и других людей.

?- любит(Кто, Что).
Кто = 'Таня',
Что = эклер ;
Кто = 'Таня',
Что = трюфель.