core.logic
A logic programming library for Clojure & ClojureScript
...It allows complex reasoning and declarative problem-solving directly in Clojure. core.unify provides a la carte unification facilities that are not deeply tied into the operation of a logic engine. While core.logic does provide a similar simple unifier interface with support for specifying fine-grained constraints, if you have no need for a logic programming system, core.unify may be a better fit.