Пролог-список соединений с классической логикой первого порядка - PullRequest
0 голосов
/ 15 февраля 2019

Я должен написать формулы логики первого порядка (FOL) программы Prolog и не знаю, как выражать списки и операции над списками.

Предположим, у меня есть следующая игрушечная программа

:-use_module(library(clpr)).
family([
    person(name(homer), age(A1)),
    person(name(marge), age(A2)),
    person(name(maggie), age(A3))
]):- {A1 = 55, A2 = 34, A3 = A1 - A2}.

Можно ли написать это в классическом FOL?И, что касается правил, как можно написать такие вещи, как Prolog member и maplist в FOL?Возможно ли это вообще?

Я знаю, что представленное ниже представление легче преобразовать в FOL, но мне нужно иметь структуру (аналогичную приведенной выше) с ограничениями, которые охватывают список переменной длины в моем описании

memberOf(simpsons, homer).
memberOf(simpsons, marge).
memberOf(simpsons, maggie).
ageOf(homer, 55).
ageOf(marge, 46).
ageOf(maggie, 12).

Большое спасибо заранее!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...