datalog: stratifier rejects recursion through aggregation (165/165)
Some checks failed
Test, Build, and Deploy / test-build-deploy (push) Failing after 53s

Bug: dl-check-stratifiable iterated body literals looking only for
explicit :neg literals, missing aggregate cycles. Now also walks
aggregates via dl-aggregate-dep-edge — q(N) :- count(N, X, q(X))
correctly errors out at saturation time.

3 new tests cover:
- recursion-through-aggregation rejected
- negation + aggregation coexist when in different strata
- min over empty derived relation produces no result
This commit is contained in:
2026-05-08 09:13:10 +00:00
parent a63d67247a
commit b95d8c5a63
5 changed files with 76 additions and 18 deletions

View File

@@ -1,6 +1,6 @@
# datalog scoreboard
**162 / 162 passing** (0 failure(s)).
**165 / 165 passing** (0 failure(s)).
| Suite | Passed | Total | Status |
|-------|--------|-------|--------|
@@ -11,6 +11,6 @@
| builtins | 19 | 19 | ok |
| semi_naive | 8 | 8 | ok |
| negation | 10 | 10 | ok |
| aggregates | 13 | 13 | ok |
| aggregates | 16 | 16 | ok |
| api | 9 | 9 | ok |
| demo | 13 | 13 | ok |