Follow-ups from the authoritative DD rebuild work (branch oflatt-dd-rebuild-in-dataflow). The exact-count fixes (delete → uncounted subsume + @UF transitive-closure feedback) are landed; these are the known remaining gaps, deferred so the initial mergeable PR isn't blocked.
1. math-microbenchmark +35/+5 residual (correctness)
After the two exact-count fixes, authoritative DD still over-counts math-microbenchmark by +35 Add / +5 Mul (dd 641778/345080 vs main 641743/345075 — 0.005%). Down from the original +6562/+770.
- Isolated to the single seed
(Integral (Mul (Cos x) x) x) at (run 11); exact at runs 5–10.
- Distinct from the union-find collision cascade we fixed (both the incremental
run_epoch and the EGGLOG_DD_AUTH_RECOMPUTE paths give the same +35, so it's in the dataflow fixpoint, not the mirror reconcile).
- A subtler congruence / re-key under-merge specific to the integration-by-parts structure. Not yet localized.
- Proven a DD-execution bug, not the encoding: native main == bridge
--term-encoding == 641135/344791 on the isolated seed; DD auth == 641283/344796 before the @UF-feedback fix.
2. Authoritative under-congruence on basic programs (correctness)
Under strict pure-native-authoritative (no fallthrough to the legacy DD engine), ~10 basic programs fail a (check) that passes on main — dd misses a union/derivation (likely the same under-congruence class as #1). Files: calc, delete, stratified, subsume-relation, repro-define, repro-noteqbug, repro-filter-bug, filter-or-bool-neq, repro-new-backend-prims, repro-small-rebuild-fail-term-encoding. Listed as unsupported in the initial PR (they error cleanly, not silently). Fixing them widens the fully-native supported set beyond the current 17.
3. math-microbenchmark performance (402s vs the #29 fast path's 70s)
Not a hang — (run 11) completes in ~402s, essentially all inside a single DD step (383s) that computes the whole 11-round fixpoint and materializes ~2.7M rows.
Follow-ups from the authoritative DD rebuild work (branch
oflatt-dd-rebuild-in-dataflow). The exact-count fixes (delete → uncounted subsume +@UFtransitive-closure feedback) are landed; these are the known remaining gaps, deferred so the initial mergeable PR isn't blocked.1. math-microbenchmark +35/+5 residual (correctness)
After the two exact-count fixes, authoritative DD still over-counts math-microbenchmark by +35 Add / +5 Mul (dd
641778/345080vs main641743/345075— 0.005%). Down from the original +6562/+770.(Integral (Mul (Cos x) x) x)at(run 11); exact at runs 5–10.run_epochand theEGGLOG_DD_AUTH_RECOMPUTEpaths give the same +35, so it's in the dataflow fixpoint, not the mirror reconcile).--term-encoding==641135/344791on the isolated seed; DD auth ==641283/344796before the@UF-feedback fix.2. Authoritative under-congruence on basic programs (correctness)
Under strict pure-native-authoritative (no fallthrough to the legacy DD engine), ~10 basic programs fail a
(check)that passes on main — dd misses a union/derivation (likely the same under-congruence class as #1). Files:calc,delete,stratified,subsume-relation,repro-define,repro-noteqbug,repro-filter-bug,filter-or-bool-neq,repro-new-backend-prims,repro-small-rebuild-fail-term-encoding. Listed as unsupported in the initial PR (they error cleanly, not silently). Fixing them widens the fully-native supported set beyond the current 17.3. math-microbenchmark performance (402s vs the #29 fast path's 70s)
Not a hang —
(run 11)completes in ~402s, essentially all inside a single DDstep(383s) that computes the whole 11-round fixpoint and materializes ~2.7M rows.Repeat(11, [user ; saturate(rebuild) ; delete])) into one monolithic dataflow at one width — 21 → 32 lanes. The fast 2–3-atom user-rule joins therefore pay 32-laneOrd/Hashcosts.oflatt-dd-perf) instead runs each ruleset at its own minimal width ("math runs entirely at width 8") and feeds ~225 per-iteration deltas into a long-lived dataflow with O(delta) host bookkeeping + shared arrangements (211s → 70s).