Does MiniKanren have the "not" operator?
For example, how would one represent Prolog's
a :- b, not(c)
a
is true if b
is true and c
is not (Prolog uses negation as failure, i.e. not(c)
is considered proven if c
can not be proven)
Prolog's not
also works with non-ground expressions, e.g.
a(X, d(Y)) :- b(d(X), d(Y)), not(c(d(X)))
According to https://github.com/zhjhxxxjh/ykanren the answer is no.