Search code examples
clojurelogic-programmingnegationclojure-core.logicminikanren

Does MiniKanren have the "not" operator?


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)))

Solution

  • According to https://github.com/zhjhxxxjh/ykanren the answer is no.