MiniKanren core substitution

A list of associations == A substitution

((var1 . a) (var2 . w) (var3 . z))

We do not allow self association

((z . a) (x . x) (y . z))
;;        ^ this is not allowed

Substitution without associations

(define empty-s ())