Что-то вроде этого определено:
keypair(pub1, priv1).
keypair(pub2, priv2).
keypair(pub3, priv3).
keymatch(A, B) :- keypair(A, B).
keymatch(A, B) :- keypair(B, A).
Вы можете спросить такие вещи, как:
keymatch(pub1, X).
keymatch(priv2, X).
keymatch(priv3, pub3).
В сторону ...
Пролог не имеет функций; вы не можете сказать что-то вроде Y = f(X)
в Прологе (на самом деле вы можете, но он не делает то, что вы ожидали, если вы пришли из C / Java / Python / и т.д. фона.
Чтобы реализовать функциональность Y = f(X)
в Прологе, вы должны сделать что-то вроде этого
f(X, Y) :- Y is X + 1.
и вызвать его так
f(3, Y).
Y оценил бы до значения 4.