Both methods, PROLOG and Kanren, perform exhaustive search.
PROLOG achieves exhaustive search via backtracking and re-binding via Unification.
Kanren achieves exhaustive search by creating an object of all possible matches at a given point, then passing the object+answers+unifiableVariables down a pipeline for further augmentation and clipping.