Search papers, labs, and topics across Lattice.
The paper introduces chrKanren, an extension of miniKanren that incorporates Constraint Handling Rules (CHR) to enhance the expressiveness and utility of relational programming. This integration allows for complete constraint propagation while maintaining the search capabilities of miniKanren, enabling novel applications like semantic unification and type-directed synthesis. Key results demonstrate that chrKanren can effectively handle complex constraints, paving the way for more sophisticated relational programming paradigms.
By merging CHR with miniKanren, chrKanren unlocks powerful new capabilities for relational programming, including advanced constraint solving and synthesis techniques.
We present chrKanren, a dialect of the purely relational constraint logic programming language miniKanren which includes support for Constraint Handling Rules (CHR), a language for writing rule-based programs such as constraint solvers. We show how to integrate CHR's constraint propagation mechanism into the language of miniKanren search streams such that both processes remain complete. We also use chrKanren to illustrate novel applications of constraints in miniKanren, such as semantic unification of user-defined data structures and type-and-example-directed synthesis for relational interpreters in the style of MYTH.