Я бы хотел запустить полностью декларативный mtak в miniKaren, который в Прологе выглядит следующим образом.
fun(X, Y, Z, A) :-
X =< Y, !,
Z = A.
fun(X, Y, Z, A) :-
X1 is X-1,
fun(X1, Y, Z, A1),
Y1 is Y-1,
fun(Y1, Z, X, A2),
Z1 is Z-1,
fun(Z1, X, Y, A3),
fun(A1, A2, A3, A).
Но вышесказанное имеет разрез. Решение не должно использовать какой-либо разрез, и решение должно содержать логические переменные и некоторую библиотеку чисел, чтобы его можно было запустить в обратном направлении.