7d96a796

By: ValentinHirschi <valentin.hirschi@gmail.com>

add rustred scalar reduction through two loops

Implement the first Vakint integration milestone of the requested Stage 1 plan: ship the sealed K=1 and K=3 artifacts, consume the existing matcher/routing witness, lower exact scalar numerators, reduce to typed masters without FORM, and reuse Vakint's pure-Rust master finalization. Existing evaluation defaults and the FORM tensor prepass remain unchanged.

Requested plan (verbatim):

PLEASE IMPLEMENT THIS PLAN:
# Stage 1: Closing IBPs through three loops and Vakint integration

## Summary

- After the green light, create the currently absent tool-managed goal scoped to Stage 1, then revise GOAL.md, README, and stable technical docs so this staged directive supersedes the old active six-loop/tensor roadmap.
- Treat the existing one-loop recurrence and two-loop sunset rule as useful foundations, not yet as closed artifacts: RustRed still lacks complete closure, artifact publication, and recursive application.
- Freeze the existing experimental RustRed tensor code without removing or extending it. Stage 1 keeps Vakint’s FORM tensor prepass unchanged.
- Stage 2—new tensor technology, extreme scaling work, and four- through six-loop closure—remains explicitly prohibited until new guidance and approval.

## Stage 1 implementation

- Freeze a matcher-derived manifest containing all eight Vakint graph classes through three loops: one 1L class, the 2L sunset and its pinch, and the 3L K4/Mercedes parent plus four inequivalent contractions.
- Produce three sector-complete unit-mass family artifacts: K=1, K=3, and K=6. The single K4 artifact must prove coverage of all five three-loop graph classes.
- Complete the generic foundry with translated-source search, exact coefficient/guard applicability, exceptional-domain refinement, symmetry/zero/factorization handling, immutable lower-sector feedback, explicit master terminals, and deterministic fixed-point closure. Required ordinary-source counts are 1, 4, and 9.
- Add versioned immutable artifact ownership and a deterministic, memoized, strictly descending rule applier. Validate artifacts once at the untrusted load boundary; do not repeat expensive authentication in the hot path.
- Restore a general common mass after unit-scale reduction by dimensional homogeneity, including the coefficient factor (m²)^(Σmaster−Σtarget).
- Extend the existing Rust library, campaign CLI, and import rustred Python API with closing-artifact generation, inspection, and reduction/application surfaces. Algorithms remain topology- and loop-count-generic despite the Stage 1 pressure targets.

## Vakint interface

- On the existing vakint_rustred branch, add the opt-in scalar backend EvaluationMethod::RustRed(RustRedEvaluationOptions) and EvaluationOrder::rustred_only() without changing defaults or existing method behavior.
- The adapter consumes Vakint’s existing topology match and simultaneous routing witness; it must not rematch graphs or dispatch on topology names.
- RustRed returns exact coefficients of typed integral-key masters. Vakint maps these to the existing MATAD master basis and reuses only its pure-Rust master substitution/evaluation machinery—never its FORM reduction.
- RustRedEvaluationOptions exposes master substitution control, defaulting to substitution enabled. The scalar backend reports no FORM dependency and never invokes or falls back to FORM.
- Production artifacts are generated once, checked into and shipped with Vakint, loaded once, and never regenerated during ordinary evaluation. Local-path RustRed dependencies may be used during development; pushed GammaLoop milestones pin the corresponding RustRed Git revision.

## Validation and milestones

1. Commit and push the authoritative staged goal/documentation update.
2. Close and publish the 1L artifact together with the artifact/reducer spine.
3. Close 2L, cover its pinch, and expose the Rust/CLI/Python application APIs.
4. In parallel with 3L closure, integrate and validate Vakint RustRed reduction through 2L.
5. Close the K=6 family and prove coverage of all five registered 3L classes.
6. Pass all applicable single-scale Vakint tests through 3L, update documentation, commit and push both repositories, then pause.

Acceptance requires:

- exact regenerated-source replay, strict descent, explicit terminals, and zero uncovered branches for every artifact;
- deterministic results across supported worker counts;
- reducer tests for guard selection, termination, memoization, symmetry routing, master-only output, and non-unit-mass restoration;
- exact raw master-coefficient comparison against AlphaLoop/MATAD oracles and matching existing Laurent-series references;
- scalar RustRed tests with an invalid FORM path;
- tensor-bearing acceptance tests using the unchanged FORM tensor prepass followed by the FORM-free RustRed scalar tail;
- unchanged Vakint defaults and backward-compatibility tests;
- optional PySecDec comparisons as non-gating supplemental checks.

Every milestone receives delegated implementation and independent audit passes. Every Git operation uses the requested ValentinHirschi identity, and reference-only content is never committed to RustRed.
GitHub
Time to Start Worker time Duration Time to finish Idle
Config 2s 8s 8s 10s 2s
Eval 7s 48s 48s 56s 0s
Build 49s 2h19m24s - - 58s
Test 9m16s 12m54s - - 38s
Deploy - - - - 23h16m54s
Suite 2s 2h33m16s - - 23h18m34s

Timeline

Config Eval Build Test Failed Retried Compressed gap
0s1m2m3m4m5m6m7m8m9m10m11m12m13m14m15m16m17m18m19m20m21m22m23m24m25m26m27m28m29m30m31m32m34m