Six Ways to Implement Divisibility by Three in miniKanren
<|reference_start|>Six Ways to Implement Divisibility by Three in miniKanren: This paper explores options for implementing the relation $n \equiv 0 \ (\text{mod} \ 3)$ within miniKanren using miniKanren numbers and its arithmetic suite. We examine different approaches starting from straightforward implementations to more optimized versions. The implementations discussed include brute-force arithmetic methods, divisibility tricks, and derivation from a finite automaton. Our contributions include an in-depth look at the process of implementing a miniKanren relation and observations on benchmarking \texttt{defrel}s. This study aims to provide practical insights for miniKanren programmers on both performance and implementation techniques.<|reference_end|>
@article{schreiber2024six,
    title={Six Ways to Implement Divisibility by Three in miniKanren},
    author={Brett Schreiber, Brysen Pfingsten, Jason Hemann},
    journal={arXiv preprint arXiv:2408.16259},
    year={2024},
    archivePrefix={arXiv},
    eprint={2408.16259},
    primaryClass={cs.PL}
}