Я ищу способы, чтобы программа "Пролог" "выглядела" больше как логика первого порядка Вещи, которые я хотел бы иметь, например:
- -> для импликации
- антецедент слева от ->
- ^ для соединения v для дизъюнкции
Или есть другое программное обеспечение, которое уже реализует это?
Заранее спасибо!
/ JC
Обновление 20190313
Я следовал предложениям в ответах ниже и попробовал это:
:- op(1200, xfx, ==>).
:- op(1000, xfy, /\).
:- op(1100, xfy, \/).
term_expansion(A ==> B, B:- A).
term_expansion(A /\ B, A, B).
term_expansion(A \/ B, A; B).
man(X) /\ unmarried(X) ==> bachelor(X).
man(john).
man(peter).
unmarried(john).
main:-bachelor(X), writeln(X), nl, fail.
Но я получаю следующую ошибку:
ERROR: bachelor/1: Undefined procedure: (/\)/2
Exception: (5) man(_1740)/\unmarried(_1740) ?
Только использование op / 3 и term_expansion / 3 для ==>, однако работает как положено. Не уверен, почему это так ...