artdag: Phase 7 non-vacuous confluence gate regression + 2 tests

Assert mau/confluent? actually discriminates: the Peano-arithmetic variant of the
optimisation laws is flagged non-confluent with named non-joinable pairs, so the green
'opt module is confluent' is real evidence rather than a rubber stamp. maude-optimize
40/40, total 198/198.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-06-19 13:58:39 +00:00
parent d7bb3303f8
commit 4a02a9c400
4 changed files with 55 additions and 6 deletions

View File

@@ -31,7 +31,7 @@ edges.
## Status (rolling)
`bash lib/artdag/conformance.sh`**196/196** (11 suites: dag, analyze, plan, execute, optimize, fed, cost, serialize, stats, fault, maude-optimize)
`bash lib/artdag/conformance.sh`**198/198** (11 suites: dag, analyze, plan, execute, optimize, fed, cost, serialize, stats, fault, maude-optimize)
Base roadmap (Phases 16) COMPLETE. Now extending.
@@ -191,6 +191,13 @@ be an op token.
## Progress log
- **2026-06-19 Phase 7 — confluence gate is non-vacuous** (maude-optimize 40/40, total
198/198). Added a regression proving `mau/confluent?` actually discriminates: the
Peano-arithmetic variant of the same laws (`0 + N = N`, `s M + N = s(M+N)` instead of
`_+_ [assoc comm id: 0]`) is asserted **non-confluent** with named non-joinable pairs,
so the green "opt module is confluent" is real evidence, not a checker that rubber-stamps
everything. Documents the exact AC-vs-Peano design choice as an executable contrast.
- **2026-06-19 Phase 7 — cost-directed: optimisation is never a pessimisation**
(maude-optimize 38/38, total 196/196). `artdag/opt-improvement dag id cost-fn` compares
the original output cone (`artdag/dce` to `id`) against the maude-reduced DAG under an