English

Six Ways to Implement Divisibility by Three in miniKanren

Programming Languages 2024-08-30 v1

Abstract

This paper explores options for implementing the relation n0 (mod 3)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.

Cite

@article{arxiv.2408.16259,
  title  = {Six Ways to Implement Divisibility by Three in miniKanren},
  author = {Brett Schreiber and Brysen Pfingsten and Jason Hemann},
  journal= {arXiv preprint arXiv:2408.16259},
  year   = {2024}
}
R2 v1 2026-06-28T18:27:16.526Z