miniKanren: Tutorial
summary
Demo shows a relational interpreter for a Scheme subset implemented in faster-miniKanren that exposes eval as an evalo relational interpreter, supports recursion and quasiquote, enforces the occurs check, and performs program synthesis via the GUI tool bareman. Practical work includes adding disequality and symbol/number constraints, dynamic reordering of recursive calls based on groundness, and hand-tuned optimizations; synthesis for a recursive append example takes about 14.5s after those tweaks. Divergence vs. finite failure remains a core undecidable performance issue.
AI-written summary · about
