miniKanren-like relational programming langauage that computes semiring weights.
The language is defined in lib/sk.ml. lib/array_sk.ml and lib/sat_sk.ml are runnable implementations. Examples are in test/semiringkanren_examples.ml, and preinstantiated implementations (for toplevel use) are in test/semiringkanren_evaluators.ml.
For the benchmarks, see https://github.com/chihyang/tensorkanren_benchmark .
For the paper, see https://arxiv.org/abs/2509.22614 .
Dependencies:
- Nx (from Raven, still in alpha), use
opam pin add raven https://github.com/raven-ml/raven.git - mSAT (development version), use
opam pin add msat https://github.com/Gbury/mSAT.git