2.4 KiB
ADR-018 graph BL/solve certificate controller draft
Status: private design only. Shared test source is frozen while the configured Debug focused run is active.
Scope
Stored ConstraintRowOperators::{gradient,hessian,time_gradient,third_directional_gradient}
are exact binary64 inputs. The draft certifies only fixed-basis contraction and
linear graph-solve arithmetic. It does not certify AD/FE operator formation,
root branch sensitivity, or nonlinear history.
Test-local data
GraphArithmeticCertificate should retain dense-small matrices/vectors:
Ghat, P_hat, BG, BP, bhat, Bb, R, Hbar, Q, rbar, Bx.
It is private to hht_shell_physics_test.cpp.
For every graph row and basis column, replay source order:
- Iterate
row.gradient, thencolumn.support; match full DOF. - Product radius is
ProductRadius(C, 0, L, BL). - Reduce matching products in
RateSumRadiussource order.
This yields stored Ghat=C*Lz, P_hat=C*Lp, and entrywise BG/BP.
The same replay builds RHS radii for P*vp, P*ap, Hessian/time contractions.
No zero-BL fallback is allowed.
Inverse action
For each canonical unit RHS, use the existing graph solver and N2-L check to
obtain one stored column of R. Replay I-Ghat*R with product/sum radii to
make nonnegative Hbar. Require finite values and thetaH=||Hbar||inf<1.
Construct
Q[i,j] = abs(R[i,j]) + (abs(R)*Hbar*1)[i] / lower(1-thetaH).
All bound additions/divisions use existing outward helpers. Failure of the positive lower denominator or either theta is INCONCLUSIVE, not a radius reset.
Uncertain solve
Replay rhat=bhat-Ghat*xhat; combine absolute residual and rounding into
rbar. With actual RHS bound Bb:
y = Q*(rbar + Bb + BG*abs(xhat)), A=Q*BG, thetaG=||A||inf.
Require thetaG<1; set
Bx[i] = y[i] + rowSum(A,i)*normInf(y)/lower(1-thetaG).
Undo any actual rate scaling before using Bx in physical lifted radii.
Tests
Add only after the current focused run closes:
- small chart with plane coefficient value zero / positive BL, proving BG/BP remain nonzero after an omitted-BL mutation;
- 1x1 and 4x4 source-order graph replay, N2-L checked;
- one thetaH and one thetaG failure must return incomplete;
- use a known 4x4 perturbation from the independent 32-case probe as a behavior oracle, without copying implementation equations as its oracle.
No production API, tolerance, grid, or sparse global inverse is added.