diff --git a/plans/minikanren-on-sx.md b/plans/minikanren-on-sx.md index 201129d9..16816005 100644 --- a/plans/minikanren-on-sx.md +++ b/plans/minikanren-on-sx.md @@ -180,6 +180,8 @@ Key semantic mappings: - [ ] Tests: send-more-money, N-queens with CLP(FD), map coloring, cryptarithmetic ### Phase 7 — tabling (memoization of relations) +- [x] `table-1`, `table-2`, `table-3` wrappers: ground-arg memoization + for 1-, 2-, and 3-argument relations. - [x] `table-2` wrapper: ground-arg memoization for 2-arg relations. Cache keyed by walked input; on miss runs underlying relation, collects all output values from the answer stream, stores, and @@ -188,6 +190,7 @@ Key semantic mappings: - [x] Fibonacci canary green: tabled `fib(25) = 75025` in seconds; naive `fib(25)` times out at 60s. Memoization turns exponential recursion into linear. +- [x] Ackermann canary green via `table-3`: `A(3, 3) = 61`. - [ ] Producer/consumer SLG scheduling — required to handle recursive tabled calls with the SAME ground key (e.g. cyclic `patho` with a shared key); naive memoization deferred to a future iteration.