~/talk

Goals as Constraints: Writing miniKanren Constraints in miniKanren

Talkat miniKanren 2023 · on Friday, 2023-09-08
links:none on file
slides:none on file

Adds an extension to miniKanren that runs arbitrary miniKanren goals as constraints, implemented as two cooperating interpreters that treat constraints as first‑order goal objects. Introduces three forms: constraint, P-constraint, and natto (negation), reuses miniKanren for constraint code, and generalizes disequality handling to arbitrary goals. Prototype in Scheme exists on GitHub; microbenchmarks vs fasterMK show consistent speedups on disequality-heavy tests and mixed results for absent/present constraints, and the system successfully expresses presento/absento and finite‑domain style checks.

AI-written summary · about

  1. 0:00miniKanren constraints intro
  2. 1:04Talk overview and motivation
  3. 2:07Limitations of traditional constraints
  4. 3:31Goals as constraints in miniKanren
  5. 4:56Constraint forms in miniKanren
  6. 7:23Recursive structures and matching
  7. 8:26Negation in constraints
  8. 10:11Primitive constraints with P
  9. 11:58Type constraints implementation
  10. 12:40Natto: Negation of goals
  11. 14:25Q&A on constraint interface
  12. 17:16Constraint solver overview
  13. 19:02Unification and state management
  14. 25:38Q&A on interpreter structure
  15. 26:02Natto and disequality generalization
  16. 31:00Disjunction handling in constraints
  17. 35:56Attributed variables and dependencies
  18. 37:37Fresh variables and matching
  19. 38:19Performance benchmarks
  20. 41:53Performance results analysis
  21. 42:13GitHub repo and future work
  22. 42:55Q&A on satisfiability
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.