Files
FESADev/docs/hht-implicit-dynamics/numerical-review-reduced-coordinate.md
T
KOKO\Mimi eaa5cbeb21 feat: adopt lumped mass and reduced-coordinate shell HHT
Integrate Hex8 mass verification and fixed-null-basis shell dynamics with numerical and physics handoff evidence. Preserve interrupted reference and full-validation status; full integration validation is deferred until after performance optimization.
2026-10-13 16:57:19 +09:00

466 lines
117 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 축소 좌표 shell HHT 독립 수치 검토
상태: **정식화·augmented 블록 정적 대조 PASS, production 채택 검증 PENDING**. 2026-10-13.
Owner: numerical-review-agent. [HHT-ADR-014](ADR.md), [RC-01–15](formulation-reduced-coordinate.md), [CA-01–06](formulation-carried-a-noise.md), [N1–N7](numerical-controls.md), [공통 외부 tolerance](../TOLERANCE.md)를 적용한다. 구현 담당자가 수정 중인 source의 점검 결과와 완료된 검산을 구별한다. 다른 담당자의 source·tests·계약·reference는 수정하지 않았다.
## 정식화 및 독립 검산
| 대상 | 독립 판정과 근거 |
| --- | --- |
| RC-01/02, full residual 동등성 | `N^T I=0`, `psi=N^T g=0`, `R=J^T E=0` 및 `[J,N]`의 full free-space span을 함께 만족해야 `E_f=0`다. 작은 reduced R 또는 G의 가역성 하나로 인증할 수 없다. 임의 drilling mass는 불필요하며 허용하지 않는다. |
| RC-03–06, 물리 rate와 이력 | HHT 적분 대상은 p이며 physical full a에는 Q의 곡률/시간 항이 포함된다. Public full A는 filter combination이고 Ar/`J Ar`가 아니다. 초기 full q/v/a를 동일 graph로 복원할 수 없으면 실패하며 frame0 projection·제외는 허용하지 않는다. |
| RC-07/09, implicit 미분 | Coupled G에 대한 second/third RHS의 부호 및 `2H[X,W]+H[B,U]` multiplicity가 맞다. 시간 차원의 W 성분은 1이다. Fixed-time `D^3 Psi[(U,0),(v,1),(v,1)]`에는 F'''가 필요 없다. |
| RC-10/11, exact Newton | `delta v=X+cv J`, `delta a=Y+ca J+C+2cv X`와 `delta J^T E`가 필요하다. `G^T lambda=Lz^T E`로 계산하는 `-lambda^T H[Ui,Uj]`의 부호가 맞다. Full-coordinate Keff나 SPD solve로 대체할 수 없다. |
| CA-02–05, 산술 radius | Positive denominator 조건의 나눗셈 bound는 타당하다. Radius 연산 자체의 outward rounding, underflow 처리, 실제 연산 순서의 coefficient/predictor/seed/전체 correction/reconstruction 추적이 필요하다. |
| CA-06, history 적용 범위 | Whole-history radius는 고정 선택 분기·고정 correction 경로의 산술 전파다. Perturbed nonlinear solve의 correction 변화나 branch 민감도까지 인증하지 않는다. |
소형 graph 검산은 formulation owner의 probe를 import하지 않고 Fraction 다항식의 계수 전개를 사용했다. 서로 다른 **explicit-time coupled 2p/2z** graph의 세 상태에서 B/X/Y/C와 transpose 곡률 항은 exact rational equality다. Reduced tangent는 N5의 `2^-8..2^-20` fixed directional sweep에서 연속 두 점 조건을 충족한다. 임의 smooth full covector를 사용한 평형 밖 검산이므로 shell 물리 모델/질량 positivity 증거는 아니다.
CA 검산은 qn/qp seed, 다중 correction·흡수되는 작은 correction, 5-step fixed-path propagation, gradual-underflow 및 denominator fail-closed를 포함했다. **906 scalar 연산**에서 exact Fraction error가 outward radius 이하였고 두 probe의 실제 child native exit는 0이다. Python의 gradual-underflow 확인은 MSVC/MXCSR 실행 환경의 확인을 대체하지 않는다. [RC 결과](../../.dryforge/hht-remediation-20261012/approved-review/independent_rc_probe.json), [CA 결과](../../.dryforge/hht-remediation-20261012/approved-review/independent_ca_probe.json), [source identity·native 기록](../../.dryforge/hht-remediation-20261012/approved-review/independent-native.json)을 보존한다.
## 현재 source 대응과 열린 finding
| ID | 판정 | 근거와 필요한 조치 |
| --- | --- | --- |
| RCN-01 | local operator 정적 대응 PASS; 실행 PENDING | `nonlinear_mitc4_shell.cpp`의 internal `constraints[node].mixed_second[j]` 반환은 `D^3 psi[e_j,v,v]`다. External `scalar.mixed_second+2*scalar_time.mixed_first+scalar_acceleration.first`는 RC-15의 pure-q/mixed-time 항과 부호가 일치한다. Internal scalar는 raw gamma가 아니라 `k*S*gamma`다. |
| RCN-02 | coverage PENDING, owner 전달 | 새 local third/external tests는 단일 `h=1e-4`와 absolute EXPECT_NEAR를 사용한다. 승인된 scaled N5 고정 sweep/연속 두 점 판정, warped/nonzero-rotation 및 mixed-time omission mutation 증거가 추가로 필요하다. 단일-h PASS를 N5 완료로 보고하지 않는다. |
| RCN-03 | dense Hessian 정적 finding CLOSED; 규모 실행 PENDING | 초기 `ConstraintOperators`가 null row마다 dense `full_dof_count^2` Hessian을 저장했다. 지정 모델 4374 full DOF/625 null이면 이 저장만 `625*4374^2*8=95,659,380,000` bytes(약 89.1 GiB)다. 수정 source의 row별 sparse gradient 및 element-scatter Hessian entry list를 확인했다. 실제 graph/tangent의 남은 dense 저장과 원본 규모 실행 가능성은 별도 검증 대상이다. |
| RCN-04 | direct time 미분 정적 finding CLOSED; 실행 PENDING | 초기 struct에 psi_t/psi_qt/psi_tt가 없어 인계했다. 이후 directional contraction에서 차감해 추출한 경로는 exact algebra가 맞지만 cancellation으로 constant CLOAD에 artificial time 항을 만들 수 있어 direct RC-14 평가를 요청했다. 수정 source에서 zero phi_dot의 Fdot/Fddot external primitive value/gradient를 직접 취합하는 것을 확인했다. Constant-load exact-zero 및 manufactured mixed-time 실행 대조가 남는다. |
| RCN-05 | partial BC/branch 검증 PENDING | FixedChart 초기 pivot은 실제 admissible null의 최대 free 성분, exact tie X/Y/Z다. 현재 Lift는 constrained 성분을 exact zero로 남기고 trial null-node list를 초기 list와 대조한다. G regularity 외에 psi_q N, J rank, positive reduced mass 및 source/context 있는 rank-change failure를 실제 embedding 경로에서 확인해야 한다. |
| RCN-06 | acceptance/cache/rollback 검증 PENDING | 선택한 실제 assembly와 derivative factorization의 authority가 일치해야 한다. Accepted z seed를 trial cache로 수정하거나 stale assembly를 rate 재구성 후 재사용하지 않는다. 원 E/psi/hidden0–2, physical recovery와 BC를 검사한 뒤 full state와 private history를 함께 commit해야 한다. |
| RCN-07 | schema 정적 경계 PASS; 실제 reduced execution PENDING | State enum은 기본 full-coordinate이고 history 내 formulation 변경을 거부한다. Writer는 actual frame enum에 따라 v1/v2를 분리한다. Reduced 실행 전 기존 full recurrence를 v2로 표시해서는 안 된다. 실제 procedure의 marker, full-A 의미, readback/reference는 후속 증거다. |
| RCN-08 | carried-A N7 구현 검증 PENDING | CA primitive 검산 PASS는 실제 C++ accumulator의 연산 순서·outward norm·underflow 설정·seed/scatter 전체 추적을 인증하지 않는다. Solve-defect와 fixed-path arithmetic radius를 별도로 보존하고, 기존 gamma32 heuristic을 새 경로의 완전한 bound로 승계하지 않는다. |
| RCN-09 | scope finding CLOSED; 최신 Debug/Release build PASS | `ReconstructPhysicalRates`의 is_p mask가 다른 함수에 선언된 compile blocker를 찾았다. 수정 source에서 rate helper의 selector mask를 확인했다. 아래 frozen source의 두 build native0을 확인했다. 전체 Debug CTest 통과를 뜻하지 않는다. |
| RCN-10 | sparse support 정적 finding CLOSED; test 실행 PENDING | One-element test의 size<24 조건과 모든24 entries 반환이 충돌함을 전달했다. 수정 source는 정확히0인 gradient/Hessian entry를 생략하며 tiny-value clamp는 없다. Scalar reduction 순서와 finite-first 검사는 유지된다. |
| RCN-11 | augmented 블록 및 최신 Debug/Release 단일 actual-shell N5 fixture PASS; 확장 coverage PENDING | 새 off-graph sweep의 u/phi/z/vz/az/mixed, D/h/h² scaling, j10..18 내부 연속쌍, row-block metric과 zero branch를 정적 대조했다. 최신 두 raw log의 6방향·4블록 모두 내부 연속 두 점 PASS를 독립 확인했다. z는 j10/12와 j12/14 쌍이 통과한다. Omission mutation 및 shared-node/warped coverage는 별도 evidence가 필요하다. 과거 [Release focused log](../../.dryforge/hht-remediation-20261012/reduced-scaled-n5-and-large.log)의 paired LargeDIRECT FAIL/native8은 당시 evidence로 보존한다. |
| RCN-12 | graph 종료/authority 정적 대응 PASS; 실행 PENDING | 기존 N3 `sum_c abs(n_c)*position.residual_scale_c`와 N2 회전 correction `1e-10`을 graph 종료에 사용한다. Zero scale의 비영 ψ를 `abs(ψ)<=1e-10`으로 통과시키던 오류는 전달 후 exact-zero branch로 수정됐다. Root residual/correction/iteration을 보존하고 100번째 candidate를 검사한다. Stagnation 반환은 outer full/hidden acceptance를 대체하지 않는다. Actual reconstructed v에서 third를 재평가하는 실제 executor 경로도 확인했다. |
| RCN-13 | reserve 정적 finding CLOSED; peak 실행 PENDING | Reference에서 약18.75 million entries를 미리 할당하던 `8*nz*(np+nz)` reserve를 actual sparse constraint entry count 기반으로 교체한 것을 확인했다. Dense Hessian 위험도 해결됐다. Actual reference peak memory와 실행 가능성은 별도 측정 대상이다. |
| RCN-14 | graph conditioning 정적 finding CLOSED; 실행 PENDING | `CheckGraphRegularity`가 기존 positive drilling metric의 W로 `W^-1 G W^-1`을 구성하고 fresh nonsymmetric factorization 및 backward-checked inverse-column solves로 `rcond_inf>=2^-32`를 검사한다. 초기/accepted endpoint 호출도 확인했다. Physical SPD 및 psi_q N regularity를 G의 conditioning으로 오인하지 않는다. 실제 condition 값·native 결과 보존이 남는다. |
| RCN-15 | frame0 bitwise 요구 정적 finding CLOSED; rotated 초기 재구성 실행 FAIL | Independent a0 solve의 bitwise 일치를 요구하던 코드를 제거했다. 수정 source는 original initialized a0를 그대로 frame0에 보존하고, reconstructed a0를 미commit assembly로 평가하여 원 free residual/N3 hidden/N4 physical mass·regularity/global equilibrium를 별도 검사한다. q0/v0 exact-zero 표현은 유지한다. 후속 실제 rotated uniform-translation 검사는 reconstructed frame0 N2에서 실패했으며 상세 원인 분리를 진행한다. |
| RCN-16 | Newton 초기 정책 정적 finding CLOSED; 실패 실행 PENDING | Legacy Ep raw norm은 같은 length의 full free energy norm으로 바뀌었고 exact tie는 predictor다. 동일 p 중복 평가 생략과 scaled compare overflow failure를 확인했다. Geometry fallback은 v/a=0의 position assembly 단계만 허용하며 ambiguous rotation 실패는 실제 q의 principal-chart 부적합을 검사한다. Reconstructed physical-rate 실패는 이 fallback을 쓰지 않는다. Valid-chart overflow/후속 correction 실패의 회귀 실행 및 stage diagnostic은 별도 검증 대상이다. |
| RCN-17 | N2/update 정적 finding CLOSED; 실제 검사 PENDING | 초기 legacy δq 배수 gate는 mapped full δq/δv/δa 및 `(1+alpha)δa` gate로 교체되었다. Private Ar와 public full A 검사도 분리했고 public filter는 모든 full component를 검사한다. Mapped multiplication의 nonfinite failure가 추가되었다. 실제 callback/계산된 correction·constraint·zero branch는 실행 검증 대상이다. |
| RCN-18 | reduced C08 산술 지표/defect 정적 대응 PASS; 실행 PENDING | Actual reduced C08 controller가 CA selector 이력, finite graph/rate INDICATOR 및 전체 auxiliary defect를 추적한다. P/W/C 계수·multiplicity와 sparse rate RHS의 실제 연산 순서가 아래 명세와 일치한다. 초기 zN의 last-K 재사용 및 frame0 `max(1,abs(a0))` floor를 발견해 전달했다. 수정 source는 fresh endpoint K로 zN의 solve/check/map을 수행하고 reconstructed frame0 candidate의 original full/N3/N4/global-equilibrium 검사를 적용하여 두 finding은 정적 CLOSED다. Native 결과 및 N7 separation으로 실행 판정을 별도 닫는다. |
| RCN-19 | Primary p 산술 수정 및 최신 focused 실행 PASS | Large DIRECT의 큰 pp/sAr 상쇄를 피하여 chosen physical p에 δp를 직접 누적한다. Ar는 독립 carried update를 유지하고 vp/ap는 기존 Ar로 복원한다. 최신 Neumaier trace source의 Debug/Release focused 검사를 확인했고 Large/context도 두 구성에서 PASS다. 전체 검증 범위로 확대하지 않는다. |
| RCN-20 | 추가 단일항 metric finding CLOSED; N3 trace 정적·focused 실행 PASS | 후속 `pnew−pp=βh²Arnew`/`vnew−vpp=γhArnew` 검사는 작은 단일항에 subtraction 오차를 상대화하는 추가 조건이었다. 이전 정적 수식 PASS를 승인 계약 PASS로 해석한 판단을 정정한다. 원 N3는 `pnew−pold`와 실제 predictor/correction increment의 대조다. 최신 production/fixture는 predictor 두 항과 모든 requested δp의 Neumaier trace를 보존하며 원 `1e-12`·uncancelled scale·zero exact 및 absolute/whole-increment 검사를 유지한다. 추가 조건 제거는 tolerance 완화가 아니다. Release actual C08a64의 이력·검사 실행 PASS는 공식 C08a 전체 grid acceptance와 다르다. |
| RCN-21 | C08b ψ0 force/operator gap 재현·complete-Jet 정적 수정 확인; scratch 회귀 PASS·production 실행 PENDING | grid32768 inc4의 scalar primitive는 충분히 작지만 assembled force/null projection이 N3를 넘는다. 9개 node의 frozen binary64 operands를 Fraction으로 재계산해 최종 dot rounding이 원인이 아님을 확인했다. 수정 source의 complete `result=stable` 반환을 확인했다. Frozen54-q point와 element 원본 FAIL/안정 series PASS는 아래 scratch 증거다. Production 및 전체 C08 통과로 승계하지 않는다. |
| RCN-22 | Proper-Q 부분 coverage 정적 확인; ell/Eref finding CLOSED·실행 FAIL | 새 실제 executor 검사는 분리2요소·serial/TBB/serial·proper `Rz(.7)Rx(.4)`로 geometry/frames/CLOAD를 함께 변환한다. Coordinate scale3은 ell1로 수정됐고 one/two-element Eref도 fixture별 인자로 교정됐다. 후속 A/force/triad 및 비영 rotation fixture 확장을 확인했다. Rotated uniform-translation 실행은 reconstructed frame0 N2에서 실패했다. `EXPECT_DOUBLE_EQ`는4ULP 비교이며 sparse structure·일반 finite-rotation covariance/C09 무하중 P/T/C10 rollback의 완료로 확대하지 않는다. |
| RCN-23 | Actual p low-carry 수식/CA·predictor 초기화 정적 PASS; C08a 원 N3 FAIL | Stable C08b1024 inc200의 과거 qtrace FAIL은 여러 addition의 low 손실이다. 수정 source는 predictor의 두 addition low와 inherited pair/high 반경을 포함한다. TwoSum pair와 final-high 반경을 Fraction으로 검산했다. 후속 C08a의58개 qtrace FAIL은 모두 현재 high가 closest binary64이고 양 neighbor도 실패하는 representability 사례로 확인됐다. 원 N3 FAIL을 유지한다. |
| RCN-24 | Initializer per-row/assembled-scale finding 정적 CLOSED; fresh procedure N2 FAIL | 승인 N2는 u/phi channel별 `max|E|/max s`다. 잘못된 helper preliminary acceptance를 제거하고 fresh actual-a0 caller가 원 element/load uncancelled scale로 N2를 검사한다. 모든 candidate a finite/constrained exact0, mass/range/null/hidden 검사와 header의 caller certificate 책임을 확인했다. Production actual/reconstructed frame0 및 C08 fresh initial frame N2 검사를 보존한다. |
| RCN-25 | Rotated 초기 original/reconstructed moment N2 실행 FAIL; geometry 산술 원인 후보 독립 재현 | 후속 진단은 original phi도 `0.0653542`로 이미 실패했음을 보여준다. Uniform-director flat shell의 point geometry 산술 replay에서 실제 original worst-row residual과 같은 spurious moment를 재현했다. Reference covariance의 anchor/partition 기반 동등 계산과 실제 native force/M·a 대조가 필요하며, 작은 C1 또는 scale를 clamp하지 않는다. |
| RCN-26 | ADR016 exact pair helper 정적·독립 native PASS; threshold boundary finding CLOSED | Both whole/requested gate가 같은 EFT helper에 각각 원 HHT 항 또는 독립 Neumaier sum/comp를 전달한다. FTZ/DAZ 확인 누락은 기존 environment guard와 negative test로 정적 CLOSED다. Current helper의 frozen58 requested 결과는 Fraction oracle와 모두 일치한다. 최종 rounded metric의 boundary false PASS를 재현한 후 owner의 exact threshold sign 비교 교정을 확인했다. 후속126 boundary cases와6개 configured pair unit tests도 통과했다. |
| RCN-27 | Canonical geometry 수식 정적 PASS; genuine C1 fixture focused PASS·초기 rate closure PENDING | Reference/current covariant의 anchor/partition 수식과 volume/current-validity predicate를 대조했고 point arms·h/force/tangent는 보존된다. 기존 one-element warped/constant-director fixture는 nonzero C1를 검증하지 못한다. 잘못된 x-axis tilt fixture를 지적한 후 owner가 left/right y-axis triad로 교정했다. Genuine nonzero-C1 fixture와 independent5³ oracle의 후속 focused PASS를 확인했다. 원 C09 초기 derivative authority/재구성 실패는 별도 미해결이다. |
| RCN-28 | Actual warped/shared N5와 특정 omission coverage focused PASS | 후속6node/2element warped/shared fixture의 실제 4block 고정 sweep과 Ha·combined HW/2W·third·psi-qt omission negative를 raw log로 독립 확인했다. Positive8개 sweep은 내부 연속쌍을 통과하고 mutant4개는 통과쌍이 없다. 독립 2W 단독/external-position-gradient omission 및 psi-tt의 scaled N5 coverage까지 완료했다고 확대하지 않는다. |
| RCN-29 | Global-selector reduced HHT의 일반 proper-Q covariance 보장 없음; 실제 fixture 판정 PENDING | Frame change는 full q에 선형으로 작용하지만 selected p 사이의 변화는 graph Q를 거쳐 일반적으로 비선형이다. RC05의 exact chain rule만으로 RC03/04 시간 recurrence의 공변성을 보장하지 않는다. 독립 exact recurrence 반례는 아래에 기록하며 실제 finite-rotation fixture의 FAIL 판정을 대신하지 않는다. |
| RCN-30 | Canonical 초기 scalar gradient 교정 정적 적합; direct-delta epoch 초기 gate PASS·later outer FAIL | 새 optional hidden_gradient는 RC02 local primitive를 deterministic scatter하고 external gradient/Hessian을 node당1회 추가한다. Initializer/regularity/hidden evidence가 이를 공통 사용하며 missing-field의 full-Hessian fallback은 없다. 후속 configured direct-delta epoch는 original/reconstructed frame0를 넘었으나 rotated increment1/100correction에서 실패했다. 이후 force source 변경에는 이 실행을 승계하지 않는다. |
| RCN-31 | Tiny rotation quantization 재현·direct Jet/scalar recovery source 정적 적합; local actual2검사 PASS | `ExpSkew(phi)*D0−D0`의 작은 increment 소실을 native/Fraction6scale로 재현했다. 후속 direct `(R−I)D0` 전체 Jet 및 scalar covariant-increment strain은 같은 Rodrigues/TL 식이며 기존 public geometry 판정은 유지된다. Actual source와 일치한 local copy의 force/Jet/recovery2검사 PASS를 확인했으나 configured C09 전체 history/outer convergence는 별도다. |
| RCN-32 | Mixed acceleration의 tiny rotary inertia 소실 actual24row 확인; force-only 교정 정적 적합·private12검사 PASS | Stored M*a+c의 exact Fraction값은 비영인데 actual point force는24개 exported 회전 row에서 모두0이다. Integrated local M와 독립 c의 Neumaier contraction은 원 inertia 식과 동등하며 N2 scale는 유지된다. 독립 native tiny-acceleration oracle와 private12검사 PASS를 확인했으나 position tangent/Pdot/Ldot mixed contraction 및 전체 C09는 별도다. |
| RCN-33 | Force-only 이후 tiny Dq/L/Ldot discrepancy 확인; 후속 scratch 동등 교정·회귀 PASS | Actual Dq의 회전 항0과 stable force FD/독립 SO(3) derivative가 불일치하며 L/Ldot의 tiny intrinsic 값도 소실된다. Integrated DqM 및 h/position×h coefficients의 동등 contraction을 정적 확인했고 independent analytic RED→GREEN를 읽었다. Production 적용/공용 실행은 별도다. |
| RCN-34 | Stable inertia epoch의 초기 재구성 N2 FAIL; partition RHS reduction 원인 독립 확인 | 동일 primitive gradient라도 initializer의 Neumaier full contraction과 graph의 plain P-partition contraction이 다르다. Actual8row 감사에서 첫4row exact RHS0에 plain reduction만 비영을 만든다. 후속 RateSum 및 controller replay 수정은 정적 대조 대상이며 fresh 실행 PASS로 아직 승계하지 않는다. |
| RCN-35 | C08 manufactured hidden helper의 external Hessian 중복 확인 | Canonical assembly.hidden_second는 internal+external ψqq[v,v]인데 helper가 −n''[v,v]·F를 다시 더한다. 원 explicit-time 항과 기준은 유지하고 중복 value/scale 항만 제거해야 한다. 역사적 C08a hidden-a FAIL은 보존하며 fresh 검증이 필요하다. |
| RCN-36 | Representable endpoint 존재 독립 확인; 승인 후 channel 제한 Newton 구현 대조 PENDING | Frozen translation q/v/a72개가 bitwise 유지되면서 원 full endpoint phi N2가2회 뒤1.4073e-13으로 통과한다. Restricted K[J,J]의 N2-L은 기존 all-free full linear 식과 domain이 다르다. 사용자가 승인한 trigger/예산/N7 actual+full-model defect 명세는 [별도 독립 검토](numerical-review-channel-newton.md)에 있으며 실제 source/runtime는 별도 대조한다. |
## 최신 focused 실행 closure
최종 Neumaier source의 [동결 source/binary identity](../../.dryforge/hht-remediation-20261012/reduced-closed-source-identities.json) **235개**를 당시 파일 SHA256와 독립 대조하여 누락0·불일치0을 확인했다. [독립 closure 검산](../../.dryforge/hht-remediation-20261012/approved-review/check_closed_runtime_identity.json)은 두 raw N5 sweep의 6방향·4블록 내부 연속쌍도 확인한다. 이는 해당 snapshot에 한정된 판정이며 이후 source/binary 변경에는 승계하지 않는다.
| 구성 | Build native | Focused CTest native·결과 | Raw evidence |
| --- | --- | --- | --- |
| MSVC x64 Debug | [0](../../.dryforge/hht-remediation-20261012/reduced-closed-trace-debug-build.native.json) | [0, 15/15 PASS](../../.dryforge/hht-remediation-20261012/reduced-closed-debug-core.native.json), 103.98s | [N5 sweep·실제 절차 검사](../../.dryforge/hht-remediation-20261012/reduced-closed-debug-raw.log) |
| MSVC x64 Release | [0](../../.dryforge/hht-remediation-20261012/reduced-closed-trace-release-build.native.json) | [0, 16/16 PASS](../../.dryforge/hht-remediation-20261012/reduced-closed-release-core.native.json), 36.98s | [N5 sweep·C08a64 Neumaier trace](../../.dryforge/hht-remediation-20261012/reduced-closed-release-raw.log) |
Production Large DIRECT/context, original zero-motion 관련 검사, 단일 actual-shell N5 및 Release actual C08a64의 full history/N3 검사가 포함된다. Export된 C08 trace의 첫5 increment는 signed sum·compensation·uncancelled scale을 함께 보존하며 해당 실행 전체가 기존 update 기준을 통과했다. **전체 Debug CTest, 필수 reference 비교, 공식 C08a 전체 grid 및 C08b 최종 판정은 이 focused 결과로 닫지 않는다.** 공식 C08a 원기준 FAIL은 역사적 evidence로 유지한다. 이후 승인된 C08a grid/hidden 검사 변경본의 실행은 별도로 필요하며 이 snapshot 통과로 승계하지 않는다. Mutation·warped/shared-node 등의 확장 coverage도 PENDING이다.
Source는 구현 중이며 위 판정은 연결된 정적 snapshot에 한정한다. 고정 source identity와 관련 test native 결과를 받은 뒤 실행 판정을 갱신한다. 공통 build는 메인 소유이며 본 reviewer는 실행하지 않았다. 과거 ABI/header dependency 문제를 현재 build 실패로 승계하지 않는다.
정적 대조 대상은 [local operator](../../src/fesa/elements/nonlinear_mitc4_shell.cpp), [local tests](../../tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp), [reduced operator](../../src/fesa/analysis/hht_reduced_operators.cpp), [private declarations](../../src/fesa/analysis/hht_reduced_internal.h), [실제 executor](../../src/fesa/analysis/hht_reduced_procedure.cpp), [actual reduced C08 controller](../../tests/unit/analysis/hht_shell_physics_test.cpp)다. [정적 snapshot identity](../../.dryforge/hht-remediation-20261012/approved-review/static-source-identities.json)는 이 검토 시점만 식별하며 build/test identity가 아니다.
## 축소 좌표 N7 대응 명세
기존 N7의 **100배 separation**, pair-grid noise 합산, FAIL/INCONCLUSIVE 및 acceptance 값은 유지한다. 변경할 대상은 승인된 적분법의 실제 derivative map이며 기존 full q inverse의 `cv*eta_x`, `ca*eta_x`를 full reconstructed rate에 그대로 적용하면 안 된다. 아래는 구현 인계용의 동일 N7 **일차 defect estimate**이며 nonlinear trajectory의 rigorous global forward bound는 아니다.
고정 p selector에서 `Dp=diag(ell for translation,1 for rotation)`이고 `xf=Dp^-1 p`다. `D`는 기존 full-space scale다. 해당 trial의 원 unsymmetric reduced tangent로 `Krhat=Dp^T Kr Dp`, `rhat=Dp^T R`를 만든다. 마지막 실제 solve의 `eL=Krhat_last*delta_x_last+rhat_last`에 대해 `Krhat_last*zL=-eL`, accepted endpoint의 **새 Krhat/R**로 `Krhat_accepted*zN=-rhat_accepted`를 read-only로 푼다. 두 defect solve도 원래 matrix의 N2-L backward-error 검사를 통과해야 한다. 결과를 history에 적용하지 않는다.
각 endpoint의 fixed predictor/time/old ap에서 다음 full-vector action을 사용한다. `X_j,Y_j,C_j`는 RC-08–10의 현재 graph 미분이다.
| Quantity | Scaled defect lift operator |
| --- | --- |
| q | `Lq=D^-1 J Dp` |
| v | `Lv=D^-1 [X+cv J] Dp` |
| physical a | `La=D^-1 [Y+ca J+C+2cv X] Dp` |
| private Ar | `LAr=Dp^-1 Dp/(beta*h²)` |
| public full A | `LA=(1+alpha)*La`, old full a를 고정한 endpoint defect에 한함 |
채널별 estimate는 `||L delta_x_last||2+||L zL||2+||L zN||2`로 각각 계산한다. 마지막 correction은 **실제로 사용한 마지막 trial의 L**, zN은 accepted L을 사용하고, 각 term의 norm을 먼저 구하여 서로 상쇄시키지 않는다. 원 full u/phi channels로 projection한 후 case의 q/v/a amplitude로 정규화하며 전체 시점 최대를 기록한다. Empty-null이면 J가 free selector이고 X/Y/C=0이므로 원 full-coordinate N7 식으로 환원한다. Constrained 성분은 exact zero다.
아래 sparse augmented 방식을 실제 사용하면 defect solve도 그 **전체 scaled augmented matrix**에서 수행한다. 마지막 실제 solve의 zL과 accepted `(Ep,psi0,psi1,psi2)` residual의 zN은 `(delta p,delta z,delta v_z,delta a_z)` **모든 block**을 보존한다. Hidden row의 비영 defect에 의해 발생한 auxiliary error는 J/RC-10의 homogeneous constraint lift에 포함되지 않으므로 δp만 남기고 나머지를 버려서는 안 된다. 각 defect vector를 actual substitutions의 δq/δv/δa로 변환하고 full A는 `(1+alpha)delta a`로 계산하여 위 channel norm에 넣는다. Scaled unknown의 h/length factors를 먼저 역변환한다. Accepted graph residual을 0이라고 가정한 별도 인증이 없다면 zN RHS에도 실제 hidden defects 또는 대응 uncertainty를 포함한다.
Graph root/derivative solve의 residual·backward error·conditioning은 따로 보고한다. 작은 projected reduced defect가 원 full E 또는 hidden equation의 잔차를 숨기지 않아야 한다. 위 linear lift만으로 유한 perturbation의 nonlinear embedding/reconstruction error를 엄밀히 bound했다고 말하지 않는다. 독립 fresh graph finite perturbation sweep과 필요시 고정밀 reconstruction으로 estimator 적용 영역을 검토한다.
산술 evidence는 다음 두 경계를 구분한다.
1. **Reduced recurrence:** 실제 p predictor/seed/모든 carried-Ar update를 CA primitive로 추적한다. Frozen-step local radius와 recursively propagated fixed-correction-path history radius를 별도 출력한다. 이 bound가 증가하거나 overflow하면 inconclusive이며 reset·clamp·last-correction-only로 대체하지 않는다.
2. **Embedding/reconstruction:** Graph/rate direct solves 및 full filter A의 산술 지표를 아래 frozen-operator 명세로 보존한다. Reduced arithmetic radius만으로 full physical-a 지표의 완전성을 주장하지 않는다. N7의 원래 최소 산술 지표는 모든 FEM/AD 연산의 엄밀한 forward enclosure를 요구하지 않는다. 지표의 제한된 범위와 FD/고정밀 증거를 명시하고, 필요한 지표 자체가 빠진 경우만 incomplete로 기록한다.
Radius norm은 upper rounding을 적용해야 한다. `std::hypot`의 반환값 하나를 roundoff-free upper bound로 취급하지 않는다. 검증된 library error enclosure 또는 outward primitive의 보수적인 L1 upper norm 등으로 2-norm 상한을 만들 수 있으나, 그 보수성이 separation을 통과시키지 못하면 inconclusive다. Tiny/subnormal value와 제곱 underflow를 positive scale floor로 숨기지 않는다. C++ gradual-underflow/rounding mode 검사는 실제 실행 evidence가 필요하다.
독립 FD는 derivative 검증이고 고정밀 fixed-path replay는 산술 검증이다. 둘 다 nonlinear equilibrium correction 변화/branch transport를 포함한 global stability proof가 아니다. 기존 N7 heuristic time amplification을 유지하면 **heuristic 비교값**으로 명시하고 rigorous whole-history bound와 별도 기록한다. C08a 및 final C08b grid의 error가 승인된 해당 complete noise evidence보다 100배 크지 않으면 시간 차수는 inconclusive다.
### Graph/rate의 최소 산술 지표: 구현 인계
**판정 범위:** 기존 N7의 minimum arithmetic indicator를 승인된 실제 reduced map에 적용한다. 전체 FEM/AD 평가·유한 nonlinear graph perturbation·nonlinear correction sensitivity의 rigorous forward bound가 아니다. 전체 fixed-correction-path selector CA 이력 `Bp,Bvp,Bap,BAr`는 누적하며 reset/clamp하지 않는다. Graph z는 별도 적분 이력이 아니라 현재 p/time의 implicit 출력이다. 이에 대한 현재 frozen derivative의 일차 전파를 whole-history nonlinear certificate라고 부르지 않는다.
현재 실제 endpoint의 sparse `P=ψq Lp`, `G=ψq Lz`, `W_i=H_i v+ψqt_i`, `C_i=H_i a+T_i[.,(v,1),(v,1)]`를 사용한다. Physical v/a와 시간 미분을 포함한 **actual** operator를 binary64 coefficient input으로 고정한다. Fresh G inverse-column solves의 N2-L 검사로 R을 구성하며 `abs(R)*radius`의 uncancelled action을 계산한다. `abs(solve(G,positive_radius))`는 내부 상쇄로 과소평가할 수 있어 대체로 쓰지 않는다. C08의 작은 null block에 한정된 transient inverse-column 자료이며 production global inverse 저장 요구가 아니다.
일차 input sensitivity와 frozen 연산의 산술 지표를 다음 순서로 계산한다. 모든 radius는 componentwise 절대값이고 selector scatter의 constrained component는 exact 0이다.
```
Bz = abs(R) * (abs(P)*Bp + ε0)
Bq = Lp Bp + Lz Bz
Bvz = abs(R) * (abs(W)*Bq + abs(P)*Bvp + ε1)
Bv = Lp Bvp + Lz Bvz
Baz = abs(R) * (abs(C)*Bq + 2*abs(W)*Bv + abs(P)*Bap + ε2)
Ba = Lp Bap + Lz Baz
```
W/C의 부호와 multiplicity는 ψ1/ψ2의 exact first variation에서 나온다. C에는 `δG*az`, `δP*ap`, Hessian 및 mixed-time 변화가 이미 포함되어 있으므로 이를 별도 항으로 다시 input sensitivity에 더하지 않는다. Direct RHS의 input radius까지 전파한 뒤 같은 W/C sensitivity를 다시 더하는 방식도 중복이며, 보수적 중복을 사용한다면 표시한다.
ε1/ε2의 arithmetic-only 부분은 실제 sparse entry 순서의 direct rate RHS `bv=-P vp-ψt`, `ba=-P ap-H[v,v]-2ψqt v-ψtt`를 CA-03으로 replay하여 얻는다. 이 replay의 coefficient와 실제 vp/ap/v input radius는 0이며 입력의 불확실성은 위 식에서 별도로 전파한다. Zero entry 생략, Hessian 곱의 순서, 2의 곱, 각 덧셈을 실제 source와 대조한다. `G vz-bv`, `G az-ba`의 실제 residual 절댓값 및 동일 sparse G dot-product의 arithmetic-only radius도 ε1/ε2에 보존한다. Backend status만으로 이 항을 0이라 두지 않는다. R의 radius action 및 norm 자체도 outward CA 연산이나 검증된 uncancelled gamma-count로 계산한다. Inverse-column backward error와 G conditioning은 별도 기록하며 rigorous inverse enclosure로 표시하지 않는다.
ε0는 실제 ψ0 defect와 최종 scalar 저장/감산의 CA rounding 지표를 보존한다. 추가로 frozen position g와 nodal null의 **비영** `n_c*g_c` 곱·합을 CA-03으로 replay한 projection radius를 기록할 수 있다. 이는 physical residual/null projection 경계의 최소 지표이며 actual scalar AD `k*S*γ` 전체의 연산 bound가 아니다. `value_scale*gamma32`를 사용한다면 heuristic임을 명시하고 실제 AD operation count라고 보고하지 않는다. 기존 N3 value_scale는 root 종료 기준의 denominator이며 arithmetic radius나 acceptance floor가 아니다.
실제 root/derivative defect가 augmented zN에도 들어가면 ε의 defect와 보수적으로 중복될 수 있다. Solver-defect estimator와 arithmetic-only 지표는 분리 기록하여 범위를 알 수 있게 한다. Public full A는 실제 `A=(1+α)a-α aold` 순서의 CA primitive로 계산하고 이전 full physical-a radius도 보존한다. Private Ar는 selector recurrence에서만 갱신한다.
Finite-first, valid fixed chart, original N4/G regularity 및 backward checks가 전제다. Missing/nonfinite radius는 INCONCLUSIVE이며 epsilon floor, reset 또는 eigen cutoff로 유한화하지 않는다. 지표와 solve noise 중 큰 값을 기존 normalization으로 집계하고 pair의 두 grid 값을 합한 뒤 **100배 separation**을 적용한다. 이 기준 미달은 유한 지표라도 INCONCLUSIVE다.
독립 [graph indicator 검산](../../.dryforge/hht-remediation-20261012/approved-review/independent_graph_indicator_probe.json)은 explicit-time coupled 다항식 세 상태의 **192 input sign corners**에서 위 세 일차 sensitivity가 direct Q derivative와 exact Fraction equality임을 확인했다. Absolute-inverse radius가 모든 corner action을 포함하고, sparse direct RHS의 **150 scalar 연산**에서 binary64 error가 CA radius 이하인 것을 확인했다. Native exit 0은 [manifest](../../.dryforge/hht-remediation-20261012/approved-review/independent-native.json)에 있다. Actual shell C++ arithmetic count, inverse-column solve 및 전체 C08의 N7 PASS를 인증하는 결과는 아니다.
### Large DIRECT: physical p의 독립 누적
큰 predictor의 예 `a0_Z=-800000`, `h=.25`, `β=.275625`에서 `pp_Z=-11218.75`, `s=βh²=.0172265625`, `Ar≈6.51e5`다. Binary64의 `s*ulp(Ar)=2.0054358174e-12`, `ulp(s*Ar)=1.8189894035e-12`는 관측한 late δp 약 `2e-12`와 같다. pp+sAr를 매 correction 뒤 다시 만들면 작은 물리 p의 해상도가 큰 두 항의 해상도에 묶인다. 기존 Large residual cycle과 크기가 일치하지만 원인 확정/해결 완료는 새 실행으로 확인해야 한다. Analytic/full null identity의 약 `2e-13` 결함을 이 physical residual 실패의 주원인으로 보고하지 않는다.
Legitimate minimal fix는 선택한 physical `p_start`에 모든 requested δp를 직접 누적하고 `Ar+=δp/s`를 별도로 유지하는 것이다. Exact arithmetic에서 `p_start=pp+s Ar_seed`이며, 귀납하면 `p_new=pp+s Ar_new`는 변하지 않는다. 승인 Ar0/ap0, first-start 선택, full E, N2/N3, fixed BC, graph branch 및 Newton100을 바꾸는 새 적분법이 아니다. Floating p와 Ar의 두 표현을 물리적으로 같다고 bitwise 강제하지 않고 기존 uncancelled update 판정으로 검사한다.
CA p radius는 actual initial branch의 `Bp_start=Bpp` 또는 inherited `Bp_old`에서 시작하여 매 actual `p+=δp`마다 `Bp_new=Bp+ρ(p_new)`를 outward 누적한다. Fixed arithmetic-only δp input radius는0이고 solve noise는 별도다. 기존 `Bpp+s BAr+...`를 새로운 actual p path의 radius로 승계하지 않는다. Ar division/addition, vp/ap reconstruction, graph lift 및 whole-history 누적은 기존 명세대로 유지한다. Controller의 actual candidate-p radius 전달 및 accumulator 수정은 정적 대조했다. Predictor copy와 fixture의 `pp+s*0`처럼 실제 경로가 다르면 보수적 추가 primitive의 범위도 표시한다.
[독립 p-carry probe](../../.dryforge/hht-remediation-20261012/approved-review/independent_position_carry_probe.json)는 세 작은 p seed와 흡수되는 corrections의 **201 scalar 연산**에서 exact Fraction relation 및 CA radius를 확인했다. 예 p≈1에서 direct p error 약 `1.8e-17`인 correction을 large-term reconstruction은 약 `3.8e-13` 다르게 저장했다. vp의 large-product ULP도 약 `1.46e-11`이므로 rate staircase는 별도 확인 대상이다. Coupled vp/ap carry 또는 compensated Ar는 수학적으로 필수인 선행 수정이 아니다. Minimal p fix 후 actual rate floor가 문제로 남으면 같은 endpoint/N3/N7 판정 아래 별도 산술 개선을 검토한다. Trial의 vp/ap를 oracle 또는 defect solve로 교체하지 않는다.
N3의 **resolved increment**는 absolute closure와 구별한다. 큰 old p를 denominator에 넣어 작은 requested increment의 손실을 숨기지 않도록 accepted `p_new-p_old`와 실제 predictor increment/선택 seed/누적 correction을 uncancelled increment scale로 대조한다. 원문은 `q1−qn`과 저장된 predictor/correction의 대조를 요구한다. 후속으로 추가했던 `pnew−pp=βh²Arnew`와 fixture의 `vnew−vpp=γhArnew`는 서로 가까운 저장 좌표/속도를 빼고 작은 단일항만 분모에 넣는 **별도 강화 조건**이었다. 해당 식의 대수적 동등성만 확인한 이전 정적 PASS는 계약 적합성 판정으로 충분하지 않았으며 이를 정정한다. [당시 실행](../../.dryforge/hht-remediation-20261012/reduced-resolved-release-core.log)의 FAIL은 보존한다.
[독립 N3 반례](../../.dryforge/hht-remediation-20261012/approved-review/independent_n3_increment_probe.json)에서 old p=`.4`, predictor increment=`.0065`, correction=`1e-8`일 때 원 whole-increment metric은 `1.3344e-16`으로 PASS지만 추가 단일항 metric은 `5.26356e-10`으로 FAIL다. 같은 `1e-12`를 사용해도 분모·비교 대상이 달라진 것이다. Genuine requested increment 손실 사례도 별도로 FAIL하여 원 계약을 무조건 통과시키는 trace가 아님을 확인했다.
최신 production/fixture는 predictor 시작이면 **old p에 더하기 전** `h*vold`, `h²(.5−β)*oldAr` 두 항을 기록하고, 모든 실제 requested δp를 Neumaier signed sum/compensation과 `Σabs(term)`에 누적한다. Old-p 선택/fallback은 실제 같은 old-p 저장값으로 시작하므로 세 trace vector의 initial zero가 정확한 상관관계다. Accepted 비교는 `pnew−pold` 대 `sum+compensation`, denominator=`Σabs(term)`이며 finite-first·scale0 exact·`<=1e-12`를 그대로 적용한다. Rounded applied difference를 trace에 넣어 항등식으로 만들지 않고 old p도 분모에 넣지 않는다. Step별 trace 초기화는 whole-history CA p/Ar radius 초기화와 다르며 CA radius는 계속 전파한다.
추가 단일항 gate는 제거됐고 원 absolute `p=pp+βh²Ar`, `vp=vpp+γhAr`, physical a/public A filter 및 전체 `pnew−pold`/`vnew−vold` update는 유지됐다. Old physical a와 old Ar도 분리한다. 이 수정의 정적 판정과 위 최신 focused 실행 판정은 PASS다. Primary-p/context의 [native 기록](../../.dryforge/hht-remediation-20261012/reduced-primary-p-large-and-context.native.json)은 당시 0으로 별도 보존하며, 최신 판정에는 동결 source의 새 native 기록을 사용한다.
## Sparse augmented Newton 및 N2 대응
Reference 규모에서 dense J/graph third tensor를 피하기 위한 **selector residual의 exact Newton**은 승인된 p-HHT의 동일 nonlinear endpoint root를 푸는 구현 선택으로 타당하다. `Ep=Lp^T E`를 쓰되 이를 `J^T E` 접선에서 `delta J`를 생략한 방법이라고 부르지 않는다. Trial은 매번 coupled Q graph와 exact chain-rule v/a로 구성한다.
`N_z=Lz^T N`이 nonzero diagonal이고 `psi=N^T E=0`이면 Ep=0는 E_f=0를 뜻한다. `G=psi_q Lz` 및 `psi_q N`의 regularity와 J/N transversality를 별도로 확인하면 기존 `J^T E` root와도 동등하다. Fixed pivot에서 N_z가 zero/invalid로 변하면 실패하며 silent pivot 변경은 없다. **Newton correction 자체는 일반적으로 서로 다르다**: 두 residual 사이의 q-dependent row transformation을 미분하면 off-root 항이 생기기 때문이다.
Augmented unknown은 `(delta p,delta z,delta v_z,delta a_z)`이고 다음 substitutions를 사용한다.
`delta q=Lp delta p+Lz delta z`, `delta v=Lp cv delta p+Lz delta v_z`, `delta a=Lp ca delta p+Lz delta a_z`.
Fixed endpoint time과 frozen predictor/old ap에서 원 ψ0/1/2의 정확한 linearized rows는 다음과 같다. `gradient_W=psi_qq v+psi_qt`, `third_WW=gradient_q{psi_qq[v,v]+2psi_qt v+psi_tt}`다.
1. `psi_q delta q=0`.
2. `psi_q delta v+gradient_W delta q=0`.
3. `psi_q delta a+(psi_qq a+third_WW) delta q+2 gradient_W delta v=0`.
물리 row는 `Lp^T[(Iq+Kint)delta q+Iv delta v+M delta a]=-Ep`다. RHS가 0인 hidden rows는 **trial의 ψ0/1/2가 exact chain-rule로 해결된 경우**다. 유한 root/derivative solve defect가 남으면 이를 감추지 않고 실제 residual/solve certificate와 함께 처리해야 한다. 보조 unknown은 Newton linearization에만 사용하며 physical state는 새로운 p의 Q/chain-rule로 다시 복구한다. δz/δv_z/δa_z를 accepted history에 직접 더하는 방법은 아니다.
독립 Fraction probe에서 explicit-time coupled 2p/2z의 6×6 auxiliary block을 Gaussian elimination으로 풀었다. 세 상태, 두 p basis 방향 모두 eliminated δq/δv/δa가 RC-10의 직접 analytic action과 **exact rational equality**였다. 실제 shell mass-null/branch·conditioning·정확한 selector tangent의 실행 검증은 남는다.
Augmented unknown의 time/length 차원을 보존하도록 예를 들어 `(Dp^-1 delta p,Dz^-1 delta z,h Dz^-1 delta v_z,h² Dz^-1 delta a_z)`와 hidden rows `(psi0,h psi1,h² psi2)`를 사용하여 scaled sparse solve를 만들 수 있다. 실제 적용한 unsymmetric operator/RHS/solution에서 기존 N2-L `<=1e-12`를 검사하고 singularity·불량 conditioning을 scalar floor로 숨기지 않는다.
N2-Q/V/a/A는 full chart의 실제 linearized variation을 각각 u/phi 채널로 나눠 계산한다. `||D^-1 delta q||inf`, `h||D^-1 delta v||inf`, `h²||D^-1 delta a||inf`, `h²||D^-1 delta A_full||inf`의 해당 채널 값은 기존 `<=1e-10`이며 모든 gate의 AND다. Public `delta A_full=(1+alpha)delta a`는 old physical a를 고정한 endpoint filter variation이다. Private `delta Ar=delta p/(beta*h²)`도 의미를 분리해 검사한다. Empty-null이면 원 full-coordinate gate의 `{1,gamma/beta,1/[(1+alpha)beta],1/beta}` 계수로 환원한다. Principal chart physical v/a와 spatial omega/omega_dot는 다른 quantity이며 이 gate에서 서로 바꾸지 않는다.
위 변화량은 linearized variation이다. 유한 새 p에서 실제 복구된 full state 증가량과 rounded requested correction을 별도 기록한다. 새 endpoint의 원 full E, finite/BC/recovery, hidden defects·update identity 판정과 Newton100 한도를 유지하며 작은 linear correction만으로 accept하지 않는다.
Hidden acceptance의 원래 N3 구분은 유지한다. Frame0의 hidden1/2 consistency와 accepted psi0의 기존 정규화 기준을 적용하고, endpoint hidden1/2는 raw/normalized diagnostic 및 N7 시간 검증 대상으로 남긴다. 이를 새로운 unconditional N2 `1e-10` gate로 확대하지 않는다. Graph/rate solver의 backward check와 정확한 재구성 의미도 diagnostic을 clamp하거나 silent projection할 근거가 아니다.
기존 physical-complement mass SPD와 psi_q N의 regularity는 재사용할 수 있다. `J=[I;z_p]`여서 column rank가 보장되고, `psi_q N=G(N_z-z_p N_p)`이므로 nonsingular G와 기존 regularity는 J/N transversality를 준다. M의 kernel이 N이고 physical complement가 SPD이면 `J^T M J`도 strict positive다. Dense reduced mass를 추가로 저장·factorize할 필요는 없다. 다만 psi_q N의 conditioning은 G의 conditioning을 보장하지 않는다. G의 scaled condition/inverse-action evidence를 별도 확보하고, rcond를 forward-error certificate로 해석하지 않는다.
## Production 채택에 필요한 evidence
### C08a 현재 실행: FAIL 및 원인 분리
[Release C08a log](../../.dryforge/hht-remediation-20261012/reduced-release-c08a.log)는 고정 `h=1/16..1/256` 전체 실행의 **native 8 / FAIL**이다. Physical angular-a의 finest max error `1.003052994395584e-4`는 승인 `1e-4`를 넘고 h64→128 order `1.777772580127911`은 `1.8` 미만이다. Hidden1/2의 마지막 refinement strict decrease도 실패했다. 로그의 기존 N7 factor100 separation은 통과했으므로 이 실패를 단순히 N7 INCONCLUSIVE 또는 테스트 통과로 바꾸지 않는다. Runtime source/binary closure는 메인이 별도로 고정한다.
| h | Angular-a max error | 최대 시점 | 최대오차의 null / physical 성분 |
| --- | --- | --- | --- |
| 1/64 | `1.377134252e-3` | `.03125` | `3.31194e-6 / 1.377130270e-3` |
| 1/128 | `4.016182211e-4` | `.0078125` | `9.26867e-7 / 4.016171515e-4` |
| 1/256 | `1.003052994e-4` | `.05078125` | `2.49769e-7 / 1.003049885e-4` |
Null-only recovered acceleration의 전체 max error도 각 grid에서 사실상 동일하다. 이는 graph hidden2 보정만으로 physical-a 시간오차를 해결할 수 없다는 증거다. q/v는 거의 2차이고 angular-a의 최대 시점이 startup/early elastic transient 사이에서 이동한다. 고주파의 비점근 구간과 sampled maximum-envelope가 가능한 원인이지만 actual shell 원인 확정은 아니다. Actual C08a physical M/K spectrum, 각 초기 error의 modal projection, analytic p(t)의 첫-step HHT defect와 independent N5가 필요하다.
독립 [forced-oscillator probe](../../.dryforge/hht-remediation-20261012/approved-review/independent_hht_transient_probe.json)는 정확 초기 상태와 동일 승인 HHT recurrence만 사용했다. `q_exact=sin(.7t)`, `F=(Ω²-.7²)sin(.7t)`에서 Ω=320의 h64→128 a-order는 `1.783906992`, Ω=640은 `1.728040350`이다. 구현오류 없이 fixed-grid order 미달이 가능함을 보여주는 mechanism evidence이며 shell acceptance가 아니다.
Startup의 별도 유도: 정확 reduced jerk `jp0`에 대해 승인 `Ar0=ap0`이면 `Ar1=ap0+(1+α)h jp0+O(h²)`이고 첫 vp update의 h² 계수는 `γ(1+α)=.5225`다. Exact 계수 `.5`와의 차이가 초기 고주파 transient를 자극할 수 있다. 진단 후보 `Ar0=ap0+αh jp0`는 `(1-γ)α+γ(1+α)=.5`로 해당 항을 제거하고 소형 Ω320 probe의 a-order를 `1.916456951`로 개선했다. **이 후보는 RC-04의 초기화 변경이며 현재 승인된 production에 적용하지 않는다.** Original frame0 또는 첫 step를 제외하거나 가속도를 oracle로 덮어쓰는 해결책도 허용하지 않는다.
Hidden1/2는 reduced chain-rule reconstruction에서 수학적으로 0인 식이다. 현재 normalized max는 각각 약 `1e-16`, `1e-14..1e-13`이다. `ManufacturedHidden`의 full physical/internal projection에는 analytic null identities의 cancellation과 higher-derivative 연산이 포함되어, sparse scalar ψ 계산보다 roundoff가 클 수 있다. Residual이 0에 수렴하는 별도 truncation component가 해상되었다는 증거 없이 이 roundoff의 strict refinement decrease를 temporal accuracy로 해석할 수 없다. Compensated contraction 및 independent higher-precision/direct-scalar 재평가는 합법적 수치 개선이지만 strict monotonicity를 보장하지 않는다. 현재 gate는 FAIL로 유지한다.
### C08a 사용자 승인과 이전 후보 검토의 구분
2026-10-13 사용자는 기존16..256을 보존하고 최종512/1024를 추가하며, hidden1/2 strict decrease를 **모든 frame의 inventory·finite 및 normalized `<=1e-10`, scale0 raw exact0** 검사로 대체하는 안을 승인했다. Physical q/v/a의 final error `1e-4`, 마지막 두 refinement order `1.8` 및 N7 factor100은 유지한다. 아래 resolved-only 감소/uncertainty 분류는 이전의 독립 검토 후보이며 이번 승인안이 요구하는 추가 gate가 아니다. 승인 변경 source의 실행 판정은 PENDING이며 과거 5-grid FAIL을 삭제하거나 새 source PASS로 대체하지 않는다.
아래는 승인 전의 후보·장단점 검토 기록이다.
1. **C08a final grid 추가:** 기존16..256의 실패·raw data를 보존하고512/1024를 최종 점근 판정 후보로 추가한다. Final normalized error `<=1e-4`, 마지막 두 refinement order `>=1.8`, N7 factor100 및 physical-a 의미는 그대로다. 이는 default production timestep 변경이 아니며 새 acceptance grid의 승인이 필요하다. Finer run은 진단 evidence일 뿐 승인 전 기존 FAIL을 덮어쓰지 않는다.
2. **Hidden 판정 변경 후보:** 현재 N3 psi0/초기 hidden1/2 및 original full E/N4는 보존한다. C08 endpoint hidden1/2에는 같은 normalized 숫자 `<=1e-10`의 upper criterion을 추가하고, **resolved nonzero defect**에 한해서 마지막 두 refinement의 감소를 검사하는 안이다. 기존 endpoint1/2는 N3에서 raw/normalized diagnostic이며 unconditional `1e-10` gate가 이미 있었던 것은 아니다. 이 안은 평가 대상과 acceptance 조건의 변경이고 자동 채택하거나 단순한 기존 기준 유지라고 표시하지 않는다. Numeric threshold 완화는 없지만 unresolved zero quantity의 strict decrease 조건을 대체한다.
단위 및 metric은 명확히 고정해야 한다. ψ0/ψ1/ψ2의 raw 단위는 각각 energy, energy/time, energy/time²다. `S1=sum_j |ψq_ij v_j|+|ψt_i|`, `S2=sum_j |ψq_ij a_j|+sum_jk |H_ijk v_j v_k|+2sum_j |ψqt_ij v_j|+|ψtt_i|`는 같은 차원의 uncancelled sums다. Scaled x/w/b를 사용해도 D의 변환을 함께 적용하면 동일 차원이다. Current C08 stored property는 `max_i |ψk_i|/Sk_i`이며 raw 값이 아니다. Source에서 실제 contraction 내부의 uncancelled scale를 어떻게 보존했는지도 함께 고정한다. `S=0`은 raw exact0만 PASS, C04b unit-circle의 raw `1e-6/1e-4`를 shell에 이식하지 않는다.
Resolved 판정에는 **별도 arithmetic-only hidden uncertainty**가 필요하다. ψ1/ψ2 실제 contraction의 CA roundoff replay 또는 독립 고정밀 평가 차이를 기록하고, graph/rate solve backward checks와 N5를 별도 통과해야 한다. Raw uncertainty와 uncancelled scale의 arithmetic radius를 모두 구해 `S-BS>0`에서 CA quotient rule로 normalized uncertainty를 계산한다. 작은 S에 임의 floor를 넣지 않는다. 실제 hidden defect를 이미 포함한 ε1/ε2를 noise로 재사용하면 `noise>=defect`로 모든 실패를 unresolved라고 만드는 순환 논리가 된다. Physical-a N7 noise도 단위가 달라 그대로 사용할 수 없다. 최소 지표 범위·누락된 operator 평가 불확실성은 표시하며 엄밀한 전체 AD enclosure라고 부르지 않는다.
후보의 구체 분류는 (a) zero/exact 또는 defect가 arithmetic uncertainty와 분리되지 않으면 **constraint upper criterion 판정 + temporal decrease N/A**, (b) nonzero defect 및 감소량이 두 grid uncertainty 합의100배보다 크면 기존 strict decrease 판정, (c) nonzero 추세가 해상되지만 감소가 없으면 FAIL, (d) 필요한 uncertainty가 빠지거나 감소량이 미해상되면 INCONCLUSIVE다. 전 구간 upper criterion 및 finite/zero-scale 검사는 어느 분류에서도 생략하지 않는다. 두 grid에 해상된 nonzero truncation 부분이 없다면 'hidden 시간수렴 PASS'라고 보고하지 않는다. 장점은 zero-constraint roundoff를 물리 시간오차와 구분하는 것이며, 손실은 기존 raw strict-decrease assertion을 모든 grid에 일괄 적용하지 않는다는 점이다. N5·independent diagnostics·upper criterion으로 구현 오류를 숨기지 않는 보완이 필요하다.
실제 coupled shell의 정확한 reduced tangent를 N5 sweep 및 곡률/시간/`delta J` omission mutation으로 확인한다. Empty null/all-fixed/부분 BC·rank-change·frame0 복원·inner/outer 실패 rollback을 각각 확인한다. Local positive mass와 regularity, full equilibrium 및 hidden diagnostics는 같은 accepted full q/v/a에서 얻어야 한다. Fixed component graph 밖의 chart/history transport는 지원했다고 주장하지 않는다.
승인된 P absolute/balance 판정은 평면·centered·all-free C08b에만 적용한다. 최종32768/65536/131072 grid와 N7 separation, 전체 configured Debug/CTest 및 지정 원본 U/UR comparison의 최종 완료 evidence는 본 검토에서 확보하지 않았다. C08a의 과거 fixed-grid 실행은 위 FAIL이며 승인된 추가 grid/hidden 기준 변경본의 실행 완료를 뜻하지 않는다. 공개 A/schema 승인이나 소형 probe PASS는 이 검증을 대체하지 않는다. 외부 U/UR tolerance 5%/RMS1%, identity·finite·zero-scale 정책과 현재 내부 N2–N7 값은 변경하지 않았다.
## C08b ψ0 실패의 추가 독립 검토
[Closed C08b 실행](../../.dryforge/hht-remediation-20261012/reduced-closed-c08b.log)은 599.92s 뒤 [native8](../../.dryforge/hht-remediation-20261012/reduced-closed-c08b.native.json)로 FAIL이다. 마지막 trace는 grid32768이며 ψ0=`5.7596457839072371e-18`, 원 scale=`1.627592976412797e-8`, normalized=`3.5387506995769016e-10`으로 기존 `1e-10`을 넘는다. Raw ψ1/ψ2의 normalized 값은 각각 `1.43396e-14`, `5.30008e-11`이다. Exception은 ψ0 조건에서 발생했다. 당시 log에는 failure의 정확한 increment/stage 및 scalar primitive 값이 없어 원인 확정은 PENDING이다. 이후 추가된 failure context/primitive/projection 진단 source는 이 실패 실행과 구분한다.
후속 [동일 h의 짧은 failure probe](../../.dryforge/hht-reduced-c08a-finer-20261013/c08b-hidden-probe.log)는 **inc4, t=.0001220703125, accepted stage**에서 같은 failure를 재현했다. Root iterations0, normalized primitive max=`6.35516e-14`, raw max=`2.88070e-22`다. Node0의 primitive=`1.47926e-22`, projected=`5.75964578e-18`이며 **같은 scale**를 사용한다. [독립 Fraction replay](../../.dryforge/hht-remediation-20261012/approved-review/independent_c08b_exact_dot.json)는 log hash와 9개 node의 frozen binary64 operands를 검산했다. Node0 final-dot rounding=`1.99168e-25`, force/operator gap=`5.75949766e-18`; node8 gap=`8.29803207e-18`이다. Root tolerance/scale mismatch와 최종 dot reduction은 이번 재현의 주원인에서 제외된다. Root polishing 또는 final-dot compensation만으로 해결할 수 없다.
같은 후보의 analytic scalar `ψprimitive=Σ k*S*γ−nᵀF`와 actual assembled `ψprojected=nᵀ(fint−F)`는 수학적으로 같아야 한다. Position root의 scale와 dynamic scale도 대조한다. 같은 q/force/null이면 dynamic scale에는 position 항과 추가 `Σ|Ma|+|c|`가 있으므로 dynamic scale가 작아지는 현상은 정상적인 time-step 효과가 아니다. Assembly authority·scale 항 누락/순서·state mismatch를 먼저 확인한다. Graph의 no-change/2-cycle 반환은 scaled certificate 없이도 가능하므로 root residual·relative scale·last correction·termination reason도 필요하다.
[독립 산술 한계 계산](../../.dryforge/hht-remediation-20261012/approved-review/independent_c08b_projection_probe.json)은 final projection의 frozen binary64 operand와 원 scale가 `L1=Σ|n*g|`를 덮는 조건에서 `γ5*L1<=9.03496e-24`다. 관측 ψ는 이 최종 3-product/2-add rounding 한계보다 약 `6.37e5`배 크다. 따라서 **최종 dot의 상쇄만**을 원인으로 단정하거나 compensated dot만으로 해결된다고 주장할 수 없다. Primitive도 같은 scale로 certified라면 `|projected−primitive|>=4.13205e-18`이므로 upstream physical/drilling force·null·AD evaluation 오차를 검토해야 한다. 이 한계는 AD 전체의 forward-error bound가 아니다.
기준/scale를 유지하는 수정 순서는 다음과 같다.
1. Same-frame primitive/projection/각 성분/uncancelled L1 및 root 종료 근거를 보존한다. Frozen 저장값 projection을 exact Fraction 또는 독립 고정밀로 replay하면 최종 reduction 오차와 upstream operand 오차를 분리할 수 있다.
2. Primitive residual이 해상되며 root 조기 종료가 주원인이면, 같은 inner Newton100·fixed chart 안에서 원 projected ψ0 검사를 만족할 때까지 graph 평가/수정을 진행하도록 종료 조건을 보강한다. Stagnation을 PASS로 바꾸거나 승인 N7 defect solve를 state에 적용하지 않는다. 모든 rate·operator·full E는 바뀐 같은 q에서 재평가한다.
3. Primitive는 충분히 작고 `projected−primitive`가 남으면 local force/AD/geometry/null의 상쇄 전 연산을 개선한다. 필요한 경우 해당 evaluation을 더 높은 precision으로 독립 대조하고 value/gradient를 함께 개선하며 같은 N5/N4/full-residual 검사를 반복한다. ψ를 scalar primitive로 덮어쓰기, force의 null 성분을 projection으로 제거하기, denominator 확대·floor·clamp로 통과시키기는 허용하지 않는다.
Source의 `ExpSkew`는 norm `1e-4..0.5`에서 value/gradient/Hessian을 direct `(1−cos(norm))/squared_norm`으로 계산하면서 directional/mixed 층만 stable9항 series로 교체한다. 같은 Jet의 derivative 층이 서로 다른 산술 evaluation을 쓰는 점이 실제 위험이다. [독립 coefficient probe](../../.dryforge/hht-remediation-20261012/approved-review/independent_rodrigues_coefficient_probe.json)는 norm `.0001314`에서 B 계수의 squared-norm D0/D1/D2/D3 direct 오차 약 `5.77e-10/.0334/3.87e6/6.72e14`를 재현한다. Complete-Jet stable9항 사용은 같은 Rodrigues 정식의 산술 개선이며 허용 physics/chart 범위 변경이 아니다. Norm .5에서 9항 coefficient의 D3 truncation은 A 약 `8.60e-22`, B 약 `3.91e-23`이나 이 scalar 검산이 full tensor/C++ Jet 실행을 인증하지는 않는다. 기존 `1e-4` 및 새 `.5` 경계 양측 D0–D3 연속성·null work·force/Hessian N5와 실제 failure-prefix/full C08 재검증이 필요하다. Fresh derivative/operator authority와 physical mass 경로의 일관성도 유지한다.
후속 source는 norm<.5에서 `result=stable`을 대입하여 value/first/second/directional/mixed를 모두 같은 series로 반환한다. 정적 수식 대응은 PASS다. [Frozen54-q 원본 point](../../.dryforge/hht-reduced-c08a-finer-20261013/point-original.log)의 FAIL과 [안정 series point](../../.dryforge/hht-reduced-c08a-finer-20261013/point-stable.log)의 PASS를 읽었다. Stable node0 physical null 약 `−1.65e-24`, primitive 약 `1.52e-22`로 force gap이 줄었다. [Element 원본](../../.dryforge/hht-reduced-c08a-finer-20261013/element-unit-original.log)은 새 actual inc4 null-force regression에서 FAIL, [안정 series element](../../.dryforge/hht-reduced-c08a-finer-20261013/element-unit-stable.log)는4검사 PASS(1.219s)다. 이는 scratch local source의 재현/수정 증거이며 아직 production build/runtime 동결 증거를 대체하지 않는다.
새 `SmallRotationPhysicalForceRetainsDrillingNullIdentity`는 actual24DOF local 상태의4node 물리 null과 internal force/scalar 관계를 각각 normalized `1e-10`으로 검사한다. 새 boundary test는 `1e-4`/`.5` 양측에서 기존 scaled third-gradient fixed sweep을 실행한다. 두 경계의 D0–D3 직접 continuity 비교 전부를 포함하는 것은 아니므로 추가 coverage로 구분한다.
별도 N3 finding도 있다. 같은 C08b log에서 whole-velocity subtraction gate가 grid64부터 반복 실패하고, grid32768 step3에는 `Δv≈−3.26128e-16`, 우변 `−3.262057e-16`, ratio=`2.38160e-4`다. 원 N3의 명시된 추가 subtraction trace는 `q1−qn`이며 RC-04의 velocity 식은 `vp=vpp+γhAr`다. 새 `vnew−vold` subtraction metric은 별도 강화 조건이므로 제거는 계약 정정으로 타당하다. 원 absolute velocity 식·full physical rates·whole-history CA/N7는 유지해야 한다. 과거 static 판단에서 whole-velocity subtraction까지 계약 적합하다고 취급한 범위는 정정한다. ψ0 산술 개선과 이 metric 정정을 별개로 실행 검증하며 원 실패 log는 보존한다.
## 다음 actual 검증의 최소 범위
Augmented N5의 local smoke와 별도로 finite **off-graph q/v/a** 상태를 사용하면 graph root가 principal branch 밖으로 가는 문제 없이 discriminating private F/Fdot/Fddot를 둘 수 있다. 현재 F=`1e-6`은 external position derivative 누락을 검출하기에 충분한지 증명되지 않았다. `Ha`, `T[W,W]`, rate row의 `2W`, explicit `ψqt/ψtt`, external position gradient를 하나씩 누락한 **analytic action**과 fresh 원 residual FD를 비교하여 각 mutation이 기존 N5 한계를 넘는 증거가 필요하다. 한 번에 여러 항을 삭제해 어느 항이 검출됐는지 숨기지 않는다. Warped1요소와 shared-node2요소에 같은6방향·4block·고정 sweep/내부 연속쌍을 적용하여 sparse scatter·cross-node coupling을 확인한다. 독립 Fraction toy graph 결과가 actual omission/warped/shared coverage를 대신하지 않는다.
새 loaded rigid translation 검사는2분리요소의 실제 reduced executor를 serial/TBB/serial로 실행하고 geometry/director/tangents/CLOAD에 동일한 `Rz(.7)Rx(.4)`를 적용한다. 최초 `kCoordinateScale=3` global extent finding은 후속 ell1 적용으로 정적 CLOSED다. 후속 source는 all-node/frame full q/v/a/A, force families, triad/director 및 별도 nonzero-rotation fixture의 covariance를 비교한다. One-element finite-rotation fixture에도 hardcoded two-element Eref를 사용하던 점은 후속 fixture별 Eref 인자로 정적 CLOSED다. `EXPECT_DOUBLE_EQ`의4ULP scalar 비교와 log/source/ordering의 exact 비교도 구분한다. 후속 rotated 초기 재구성 실행은 아래 N2 FAIL이며 전체 source-binary closure는 아직 없다. Sparse structure/C09 무하중 uniform-velocity P/T/C10 rollback 및 일반 유한회전 covariance를 완료로 확대하지 않는다. Global-component selector는 proper-Q 후 nonlinear reduced-coordinate 변화가 될 수 있으므로 이산 HHT covariance는 continuous physics objectivity만으로 자동 인증되지 않는다.
## N3 qtrace의 실제 coordinate low carry
[Stable C08b1024 trajectory](../../.dryforge/hht-reduced-c08a-finer-20261013/c08b1024-stable-trajectory.log)는257frames를 평가했으나 inc200/full30의 qtrace ratio=`1.47277e-12`로 FAIL이다. [저장값 representability 검산](../../.dryforge/hht-reduced-c08a-finer-20261013/c08b1024-representability.json)의 exact requested target은 약 `.014162097179931568436`이고 저장 p=`.01416209717993157`은 누적 addition low `−1.43482e-18`을 잃었다. 다음 작은 float `.014162097179931568`의 같은 metric은 `3.07833e-13`이다. 이 사례는 tolerance를 바꿀 필요가 없는 산술 누적 개선 대상이다.
실제 coordinate pair의 high/low와 read-only requested trace의 compensation은 서로 다른 소유량이다. Pair update를 `(s,e)=TwoSum(high,δp)`, `t=low+e`, `(high_new,low_new)=TwoSum(s,t)`로 하면 exact pair 합의 변화는 `δp`와 t의 한 번 rounding뿐이다. EFT가 성립하는 finite binary64/gradual-underflow 실행에서는 **`Bpair_new=Bpair_old+ρ(t)`**, public high의 radius는 **`Bhigh=Bpair_new+abs(low_new)`**로 둘 수 있다. Radius 계산은 outward로 하고 nonfinite/FTZ 미확인은 인증하지 않는다. Ar는 별도 실제 δp/s update와 radius를 유지하며 vp/ap를 oracle로 대체하지 않는다. Accepted full residual·N3 absolute/trace·N7 factor100은 그대로 필요하다.
[독립 pair-carry probe](../../.dryforge/hht-remediation-20261012/approved-review/independent_coordinate_low_probe.json)는4개 normal/extreme/subnormal 경로152updates에서 exact Fraction pair/public-high error가 위 radius 이하임을 확인했다. 위 inc200의 best float도 독립 확인했다. 이는 Python IEEE 실행과 frozen correction arithmetic 검산이며 C++ MXCSR 또는 nonlinear error의 인증이 아니다. Probe의 사후 low folding은 representability 진단 전용이며 production accepted state를 사후 수정하는 절차가 아니다.
초기 predictor의 `pold+h*vold` 및 추가 `h²(.5−β)Ar_old` addition low도 qtrace target carry에 포함해야 한다. 기존 predictor high·두 시작점 선택은 보존하고, actual low 보조량과 초기 pair radius를 별도로 설정한다. 보수적 초기 bound는 기존 `Bhigh+abs(initial_low)`다. Old-p 선택/fallback은 같은 old-p로 시작하므로 low0의 correlation을 사용하되 inherited high radius는 유지한다. 최초 source의 predictor low 미반영 finding은 후속 production/fixture의 실제 초기화로 정적 CLOSED다. Final pair/high radius 또는 whole-history CA radius를 reset·clamp하지 않는다. Pair radius의 단조 증가와 달리 high radius의 `abs(low)` 항은 remainder가 high에 소비되면 줄 수 있으나 history reset/clamp가 아니다. Step별 requested trace 초기화와 accepted high로부터의 다음 step pair 초기화는 CA uncertainty 폐기와 구분한다. [Release focused native0](../../.dryforge/hht-remediation-20261012/compensated-coordinate-release-core.native.json)·13/13 PASS는 scalar/pair 관련 focused 범위이며 전체 C08의 N3 통과 증거가 아니다.
보상 산술도 원 N3를 모든 grid에서 만족시킨다는 보장은 없다. Target p의 가장 가까운 binary64와의 거리 `dmin`이 `1e-12*Σabs(requested increments)`보다 크면 어떤 저장 p도 그 기준을 만족하지 못한다. 독립 반례 old p=1, δp=`2^-54`는 best float가1이고 ratio1이다. 그런 실제 candidate는 **원 N3 FAIL**이며, arbitrary nextafter 선택·scale 확대·절대 floor·기준 완화·accepted-state polishing으로 통과시키지 않는다. N7의 시간오차 evidence와 iteration/roundoff dominance는 별도로 보고한다.
### Compensated C08a 전체 실패의 exact 대조
[공식 compensated C08a log](../../.dryforge/hht-remediation-20261012/compensated-c08a-release.log)는7grid 평가 뒤 testcase888.432s, [native8](../../.dryforge/hht-remediation-20261012/compensated-c08a-release.native.json)로 FAIL이다. [모든 exported failure의 독립 Fraction 검산](../../.dryforge/hht-remediation-20261012/approved-review/independent_c08a_representability.json)은 whole-coordinate update58회와 requested trace58회, 총116개의 gtest 오류를 집계했다. Requested trace58개는 grid512에서6개, grid1024에서52개다. **58개 모두 현재 p가 `pold+stored_increment`의 closest binary64이고 양쪽 neighbor도 원 `1e-12` gate를 실패한다.** 모든 checked coordinate subtraction은 exact다. `high+low`와 `pold+signed_sum+compensation`의 exact Fraction 차이는 최대 `7.70e-34`로, 이 requested trace 실패를 coordinate-carry 구현 오류로 설명할 근거는 없다. Whole-update의 Ar 우변 항은 log에 export되지 않아 해당58개를 exact replay했다고 주장하지 않는다. Requested gate만으로 기존 FAIL은 확정된다.
| 관측 | Best stored-coordinate metric | 양 neighbor metric | 판정 |
| --- | ---: | --- | --- |
| 첫 실패, grid512/inc278/full6 | `2.372329906e-12` | down `1.028833888e-11`, up `1.503299870e-11` | 원 N3 FAIL; 더 가까운 binary64 없음 |
| 최악 실패, grid1024/inc555/full6 | `1.208331938e-11` | down `3.078365958e-11`, up `5.495029834e-11` | 원 N3 FAIL; 더 가까운 binary64 없음 |
### N3 표현 오차 분리: HHT-ADR-016 승인
다음 비교 대상 변경은 2026-10-13 사용자가 [HHT-ADR-016](ADR.md#hht-adr-016--reduced-좌표-증분-산술과-저장-표현의-분리)으로 **구현을 승인**했다. 구현·검증 완료와는 구분한다. 기존 computation threshold `1e-12`, uncancelled requested scale S 및 absolute p/v/a/A/full E/N2/N7는 유지하면서, increment computation은 exact represented pair `L=(p_high−pold_high)+subtraction_low+p_low`와 저장 predictor/correction trace T를 비교한다. Old accepted history는 실제 high이므로 step 시작 old low는0이다. Whole-coordinate update 검사를 유지한다면 그 우변의 원 항 scale를 보존하고 좌변도 같은 pair increment로 명시해야 한다.
실제 저장 high는 별도 `p_high=roundToNearestEven(exact(p_high+p_low))`를 검사한다. 임의 absolute floor를 N3 분모에 더하지 않고 high-only subtraction defect, low 및 closest-float 거리를 raw evidence로 계속 보존한다. Scale0에서는 represented increment/trace exact0, fixed high/low의 exact0을 우선한다. Pair와 출력 high의 CA uncertainty는 whole history 및 N7에 보존한다. 이 안은 arithmetic computation과 불가피한 좌표 quantization을 분리하지만 원 high-only subtraction gate의 비교 대상을 바꾸므로 승인 이전 original FAIL은 유지하며, 변경 source의 실제 검증 전 새 기준 PASS로 보고하지 않는다.
위58개 exported trace의 exact pair computation metric은 최대 `9.97303e-28`, stored high의 nearest-pair 검사는58개 모두 일치했다. 이는 승인안의 read-only 진단이며 승인 이전 source의 원 N3 FAIL 판정을 바꾸지 않는다. Whole-update Ar 우변 또는 전체 시간오차·모든 frame 조건의 새 acceptance 통과도 이58개 값만으로 주장하지 않는다.
## C09 initializer의 N2 channel 계약
[Initial equilibrium failure 진단](../../.dryforge/hht-remediation-20261012/initial-equilibrium-diagnostic-debug.log)은 full2의 residual=`−2.13662e-34`, row scale=`1.02177e-32`, acceleration=`1.31406e-34`를 기록한다. 승인 N2는 u/phi별 **`max_free |E_i| / max_free s_i`**이며 각 row의 ratio AND가 아니다. Per-row gate를 channel max로 교정하는 것은 계약 정정이다. Scale0는 해당 **전체 channel**의 모든 E가 exact0인 경우에만 PASS이고 empty channel은 N/A다. 모든 free residual/scale를 max 이전에 finite-first 검사하여 NaN을 숨기지 않고 fixed/reaction rows를 제외한다.
또한 initializer의 현재 s_i는 assembled c/internal/F의 절댓값과 assembled M의 matvec 항 절댓값 합이다. 원 N2는 `Σelement,j |Me_ij aej|+Σelement|ce_i|+Σelement|fphysical_ei|+Σelement|fdrill_ei|+Σload|Fload_i|`이므로 두 식은 일반 shared-element/상쇄 load에서 같지 않다. 실제 a0로 재평가한 assembly의 기존 element/load uncancelled residual_scale 또는 동등한 local scatter scale가 필요하다. 초기 a=0의 scale에 assembled `|Ma|`만 더해 교체한 것으로 충분하다고 주장하지 않는다. Physical range solve backward check, initial hidden consistency·N4 및 fresh reconstructed frame0/full equilibrium은 계속 별도로 적용한다.
최소 교정으로 helper의 잘못된 preliminary full-free acceptance loop만 제거하고 **caller의 fresh actual-a0 assembly**가 N2-R을 소유하게 할 수 있다. Production callsite는 `ExecuteReducedHht` 한 곳이며 actual a0 재조립→reconstructed frame0 N2→original initialized frame0 N2→commit 순서를 정적 확인했다. Helper의 positive-mass/range backward check/null/initial hidden 검사와 모든 candidate a의 finite/fixed exact0은 유지해야 한다. Internal header에 반환값은 아직 complete full-equilibrium acceptance가 끝나지 않은 candidate이며 caller의 재조립/channel N2가 필수임을 명시한다. Direct internal unit 검사는 해당 candidate/대수 범위로 한정한다. C08 `RunPlate`의 original initialized frame도 global `CompleteEquilibrium`만으로 N2를 대체하지 않고 fresh free_residual_metrics를 명시 검사해야 한다. 이 소유권 교정은 gate/tolerance 삭제가 아니며 source 수정·회귀 실행은 implementation owner가 수행한다.
후속 source에서 해당 loop 제거, 모든 candidate acceleration finite와 `ConstrainedDofs()` exact0, internal header의 candidate/caller certificate 계약을 재확인했다. C08 `RunPlate`도 fresh initialized frame의 free metrics finite 및 `<=1e-10`을 frame0 history 이전에 검사한다. Production의 original/reconstructed frame0 gate와 commit 순서는 그대로다. 이 helper-contract finding은 **정적 CLOSED**다. 후속 algebra8개 PASS와 actual C09 초기 N2 FAIL은 아래처럼 별도 판정한다. 새로운 actual N5 omission mutation·warped/shared 및 전체 Debug/reference 완료 판정과 혼동하지 않는다.
### Fresh caller N2 실행과 초기 재구성 차이
[Fresh Debug focused log](../../.dryforge/hht-remediation-20261012/initializer-caller-n2-debug.log)와 [native8](../../.dryforge/hht-remediation-20261012/initializer-caller-n2-debug.native.json)은 algebra8개 PASS와 loaded rigid/proper-Q 검사1개 FAIL을 기록한다. 실패는 rotated uniform translation의 reconstructed frame0 N2이며 testcase140.327s다. Preliminary helper gate의 계약 교정이 원 frame0의 모든 물리 검증 통과를 뜻하지 않는다. Detailed original/reconstructed channel numerator/scale 진단은 별도 진행 중이며 작은 값이라는 이유로 gate를 삭제하지 않는다.
RC §3의 동일 graph/rate 복원은 독립 두 solve의 bit pattern 일치를 뜻하지 않지만, 재구성된 physical rate의 원 full E/N2를 요구한다. 같은 q0/v0에서 ap를 보존한 재구성 차이는 z block에만 있으므로 일반 rotated n 전체의 mass-null 방향이 아니다. Exact arithmetic에서는 초기 hidden consistency와 G regularity가 차이0을 보장하나, floating-point hidden/RHS/solve 결함이 tiny z acceleration 변화와 실제 moment를 만들 수 있다. 우선 `E_reconstructed−E_original`과 `M*delta_a` 및 동일 sparse operator의 original/reconstructed hidden acceleration을 대조한다. 전자는 affine inertia 변화와 actual force/mass assembly 산술 gap을, 후자는 graph rate RHS/solve와 initializer 차이를 분리한다. 안정 dot/RHS·backward-checked refinement 또는 동등한 coupled range/hidden solve는 원인을 확인한 뒤 검토하며, original a0만 채택해 재구성 검사를 생략하거나 moment scale에 translation force floor를 넣지 않는다.
### Original 초기 moment도 실패: reference geometry 산술 후보
[후속 initial/reconstruction 진단](../../.dryforge/hht-remediation-20261012/c10-initial-reconstruction-debug.log)은 C10 두 검사 PASS와 rotated rigid 검사 FAIL(testcase137.126s)을 기록한다. Original `rho_u=1.45157e-16`이나 **original `rho_phi=0.0653541779`도 원 N2 FAIL**이다. 재구성은 phi numerator=`2.1257138844e-17`, scale=`2.3674025018e-17`, ratio=`0.897909791`이다. Worst full4에서 original residual=`−4.0318768289e-19`이며 a와 original a는 둘 다 `4.9146402261e-13`이다. 해당 row의 delta a0만으로 전체 column coupling이나 전체 재구성 오차가0이라고 주장하지 않는다. 따라서 원인을 재구성 solve 하나로 한정한 가설은 충분하지 않다.
`nonlinear_mitc4_inertia.cpp`는 `Xi+z Di`를 먼저 만들고 그 값들의 shape derivative 합으로 covariant를 평가한다. Flat uniform director이면 exact covariant는 z와 무관하지만 binary64의 큰 coordinate addition/reduction이 ±z Jacobian 차이를 만들 수 있다. 이어 M의 `Σscale hᵀh`와 force의 `Σscale hᵀ(Σh a)`가 다른 arithmetic path를 사용하므로, tiny first-thickness moment C1과 moment channel은 별도 cancellation 오차를 가진다. 안정 complement projection의 기존 Gram/rcond PASS만으로 이 point force/mass 일치를 보장하지 않는다.
[독립 geometry/linear-inertia replay](../../.dryforge/hht-remediation-20261012/approved-review/independent_c09_moment_probe.json)는 같은 rotated node geometry/director, rho2, thickness.1, source3×3×3 quadrature 순서와 pure translation a=`20 Q ex`를 Python binary64로 계산했다. Node0 source geometry의 opposite-z Jacobian 차이는 `3.46945e-18`, C1=`−2.66815e-20`, direct moment-Y=`−4.0318768289304696e-19`로 위 original residual과 일치한다. Stored binary64 M의 exact Fraction dot과 direct force의 moment-Y 차이는 `2.12267e-19`다. Shifted 두 번째 element도 같은 산술 gap을 보인다. Uniform director의 z 독립 covariant를 계산한 diagnostic 경로에서는 ±z gap/C1/moment/M·a가 모두 exact0이다. 이 probe는 actual initialized 전체 a·drilling force 또는 native MSVC/FMA 실행을 replay하지 않으므로 전체 원인의 확정/해결 PASS로 승격하지 않는다.
수학적으로 동등한 개선 후보는 canonical anchor와 partition identities를 써서 `ref_xi=ΣNξ_i(Xi−X0)+z ΣNξ_i(Di−D0)` 및 eta를 계산하고, `ref_zeta=(t/2)[D0+ΣNi(Di−D0)]`로 구성하는 것이다. General warped/nonuniform director 항은 보존하며 uniform director derivative는 구성상 exact0이다. Current covariant에도 같은 구조를 적용할 수 있으나 physical point와 spatial moment arm의 원 정의는 유지한다. Native actual ±z Jacobian/C1·M·a/direct force 및 range/null/RHS 대조 후 owner가 교정해야 한다. Flat rotated/large-offset 및 **nonzero physical C1의 warped/director-gradient** 회귀가 필요하며, geometry 변경을 진짜 C1의 clamp·rotation acceleration0 강제·N2 scale floor로 바꾸지 않는다.
### HHT-ADR-016 구현 독립 검토 범위
승인안의 whole/requested 두 gate에 exact pair increment를 동일하게 적용하고, 각각 원 HHT RHS/독립 compensated requested trace와 해당 uncancelled scale를 사용해야 한다. Neumaier trace의 `sum+compensation`을 먼저 하나의 rounded scalar로 줄여 exact low를 버리지 않는다. Stored high의 RN-even 검사는 nonoverlapping pair에 대한 actual high+low rounding 또는 동등한 exact spacing/tie 조건을 확인하며, nextafter로 state를 변경하지 않는다. Finite-first·fixed exact0·scale0 exact0와 finite EFT/subnormal 유효성을 유지한다. Expansion 중 overflow나 유효성 실패를 표현오차 예외로 통과시키지 않는다.
초기 predictor low와 whole-history pair/public-high CA radius는 승인 이전 TwoSum 경로 그대로 유지해야 한다. 새로운 검사 expansion의 산술 경계가 필요하더라도 이를 denominator floor나 N7 uncertainty reset으로 사용하지 않는다. Frozen58-case exact 비교, tie-even/odd 및 양방향 spacing 경계, subnormal/overflow/nonfinite, 누락/잘못된 correction mutation과 production/controller 동일 helper 적용을 source/runtime로 검증한다. Current implementation owner가 helper와 geometry source를 작성 중이므로 이 절은 준비 명세이며 정적/실행 PASS가 아니다.
### ADR016 실제 helper와 threshold boundary
Actual `hht_reduced_increment.h::CheckPairIncrement`는 최대3개 RHS와 high/low/old를 grow TwoSum expansion으로 보존하고 storage `high+low==high`를 독립 검사한다. 최대6개 입력이므로8-slot capacity가 충분하며 nonfinite/overflow는 실패다. Production와 controller의 whole/requested 두 gate는 각각 원3항 scale와 independent trace sum/comp 및 원 uncancelled scale를 사용한다. 기존 pair/history CA 코드 변화는 없다. FE_TONEAREST만 검사하던 최초 finding은 기존 `ArithmeticEnvironmentSupported()`의 MXCSR FTZ/DAZ/rounding guard로 교정됐고 상태 복원하는 negative tests를 확인했다.
[현재 helper의 독립 standalone MSVC 검산](../../.dryforge/hht-remediation-20261012/approved-review/independent_pair_increment_native.json)은 frozen58 requested 사례의 exact Fraction oracle와 arithmetic/storage 판정 및 defect RN이 모두 일치한다(native0, maxratio=`9.97303e-28`, helper SHA256=`9ef99d6a2801891e60b181ad598b6ca924b054d6be9c600c0cad358d6fc62a7e`). Actual exported whole HHT RHS는 없으므로 whole58개까지 replay했다고 주장하지 않는다. 이 evidence는 아래 exact comparator까지 반영한 helper source/binary에 한정되며 이후 변경에 승계하지 않는다.
Final expansion의 exact 값과 마지막 `difference += component`/division의 rounded scalar는 구분해야 한다. Actual standalone helper에 high=old=low=0, RHS=`{1e-12,2^-94}`, requested scale1을 주면 exact defect는1e-12를 넘지만 rounded defect/ratio가1e-12라 arithmetic/storage 모두 PASS다. 이는 approved computation threshold 근처의 rounding false PASS이며 frozen58의 충분히 작은 defect에는 영향을 주지 않는다. Owner에게 rounded ratio를 diagnostic으로 남기고 exact expansion과 threshold product의 sign을 비교하도록 요청했다. Threshold product의 underflow tail을0으로 가정하지 않으며 scale0 exact-zero/finite/environment gate를 유지해야 한다. 새로운 floor·tolerance 변경은 필요하지 않다.
### Anchor geometry 실제 source와 C1 coverage
Actual inertia source의 `DerivativeSum`은 canonical node0 차이, `InterpolatedSum`은 D0+ΣNi(Di−D0)를 사용한다. Current ξ/η는 reference coordinate anchor와 displacement derivative를 따로 더하고 director derivative를 유지한다. Reference/current ζ, reference volume 및 current positive-Jacobian predicate 모두 이 covariant에 대응한다. Geometry에는 high의 actual displacement/director를 쓰며 physical point/spatial arms·h·convective force·force/tangent 식은 그대로다. 이는 partition identities의 동등 산술이며 C1를 직접0으로 설정하지 않는다.
최초 Warped()는 one-element preprocessing이 constant director를 주므로 nonzero C1 smoke가 실패한 것이 geometry 오류를 뜻하지 않는다. 다음 left/right x-axis director tilt도 Dxi가y 방향이고 B_eta_x=d_x=0인 exact twist여서 determinant z-linear coefficient0이다. 이 fixture finding을 전달한 뒤 owner는 left/right ±.1 y-axis triad `ta=(cos,0,−sin),tb=(0,1,0),d=(sin,0,cos)`로 교정하여 Dxi_x와 physical C1를 만든다. 해당 fixture를 기존 독립5³ C0/C1/C2 recovery·energy/force oracle loop에도 포함한 것을 확인했다. 단순 coupling>0은 magnitude/identity oracle를 대신하지 않으며 실제 runtime은 별도 판정한다.
[Anchor 첫 focused Debug](../../.dryforge/hht-remediation-20261012/adr016-anchored-inertia-debug.log)의15/17 PASS·C09 및 최초 zero-C1 smoke FAIL은 당시 evidence다. Original phi가0으로 개선된 뒤에도 재구성 phi가약.968로 실패하여 초기 rate/operator의 별도 산술 문제가 남았다. CovariantIncrement는 이미 relative displacement Jet라 direct uniform-translation direction에서는 derivative0을 보존할 수 있으나, 반환 fullgradient의 사후 dot은 상쇄 순서 때문에0을 잃을 수 있다. 실제 all a_phi/null 방향, δaz 및 fullgradient·direct directional hidden-a 대조로 가설을 검증해야 하며 original state를 seed해 검사를 우회하지 않는다.
### Exact comparator 교정과 현재 focused closure
Owner의 후속 comparator는 rounded defect/ratio를 diagnostic으로 남기고, grow EFT defect expansion의 sign을 정규화한 뒤 기존 `TwoProduct(1e-12,scale)`의 exact high/low를 빼서 최고 nonzero component의 sign으로 판정한다. 최대6개 원 입력+2개 threshold 항이므로8-slot capacity가 충분하다. Threshold의 lowest-bit exponent가 지원 범위 밖이면 명시 FAIL이며 product의 잃은 tail을0으로 간주하지 않는다. Exact defect0은 positive scale에서도 threshold product를 만들기 전에 PASS하므로 실제 subnormal equality를 불필요하게 실패시키지 않는다. Scale0 exact-zero/finite/environment/storage gate와 CA는 유지된다.
[독립 native boundary 검산](../../.dryforge/hht-remediation-20261012/approved-review/independent_pair_boundary_native.json)은 above/below/equality·양 sign·scale `2^-1000..2^1000`126사례에서 Fraction oracle와 판정이 모두 일치한다(native0; unsupported product-tail24개 fail-closed 포함). 기존 `2^-94`/`2^-100` false PASS도 차단됐다. Frozen58 actual helper 검산도 새 helper hash로 다시 실행하여 모두 PASS를 유지했다.
[Configured Debug focused native0](../../.dryforge/hht-remediation-20261012/adr016-exact-threshold-warped-debug.native.json)와 [9/9 PASS log](../../.dryforge/hht-remediation-20261012/adr016-exact-threshold-warped-debug.log)는 pair6개·mixed-time graph/rate1개·genuine C1와 independent5³ oracle2개를 포함한다(CTest149.36s). 이는 original C09의 초기 derivative authority 오류, 전체 C08/reference/전체 Debug를 닫지 않는다.
### 초기 gradient authority discrepancy의 exact 원인
[Actual C09 initial-only native 진단](../../.dryforge/hht-reduced-c08a-finer-20261013/c09-initial-probe.log)의8개 row를 [독립 Fraction으로 감사](../../.dryforge/hht-remediation-20261012/approved-review/independent_c09_initial_gradient.json)했다. Row0 primitive translation coefficient의 exact 합과 exact acceleration dot은0이며 printed `−4.07e-20`은 final summation noise다. Original a_phi는 `eta*n`, eta=`−1.60084659e-12`이며8개 node의 null 방향으로부터 최대 거리=`5.16e-29`다. Primitive exact `ψq*a=−4.512015761e-15`는 전부 이 null acceleration에서 온다. 반면 force-Hessian projected gradient `nH`의 가짜 translation dot=`+4.513567227e-15`가 이를 상쇄한다. Primitive/force-derived operator gap이 원인 규모이고 final dot rounding `O(1e-18)`은 별도 작다.
따라서 range mass solve가 실패했다거나 원 initial a를 재구성 seed로 유지하면 된다는 결론은 부적절하다. RC-02에 따라 initial null solve/regularity/hidden evidence의 derivative를 실제 scalar primitive와 동일 authority로 계산하는 것은 수학적으로 동등한 교정이다. 이후 sparse contraction 및 graph rate partition RHS도 compensated reduction으로 원 rigid-translation cancellation을 보존해야 한다. Physical mass range solve·initial A0=a0·q0/v0·부분구속/rank·N2/N3/N4/full actual assembly는 유지하며 초기 a를 외부에서 projection·0으로 강제하지 않는다. 선택한 derivative의 실제 input/assembly authority가 일치하고 plain full-Hessian gradient로 silent fallback하지 않는 source 계약이 필요하다. 실제 구현·회귀는 owner가 수행하며 현재 C09는 FAIL이다.
### Actual warped/shared N5 현재 evidence
앞의 준비 명세 후 `ReconstructsActualShellRatesWithMixedTimeLoad` fixture가6node/2element 공유 edge·warped node 및 실제 F/Fdot/Fddot 상태로 확장됐다. [현재 raw sweep의 독립 대조](../../.dryforge/hht-remediation-20261012/approved-review/independent_current_n5_sweep.json)는 u/phi/z/vz/az/mixed와 별도 Ha 및 HW/2W8개의 positive sweep에서4block 모두 `j10..18` 내부 연속쌍을 통과했음을 확인한다. z는 마지막16/18쌍을 제외한 앞3쌍이 통과한다. Actual configured testcase147.11s PASS는 위9/9 focused native0에 포함된다.
Omission mutants4개는 원 fresh residual FD를 유지하고 analytic action의 Ha, combined HW/2W, third 또는 psi-qt 항을 각각 제거하여 통과쌍이 없음을 확인했다. Ha는 v0 상태로 분리했으나 HW와2W는 함께 제거하는 mutation이므로 각각의 독립 누락 검출로 표현하지 않는다. psi-tt 제거는 reconstructed rate의 raw hidden defect>`1e-8` smoke로 검출하며 scaled N5/원 N3 certificate가 아니다. External-position-gradient omission은 아직 별도 검출 증거가 없다. 이 현재 evidence는 준비-only 상태를 해당 범위에서 갱신하지만 partial-BC 실패/C09 초기화/C10 실제 correction100 trajectory/일반 proper-Q covariance 및 전체 reference closure를 대신하지 않는다.
### Canonical 초기 gradient의 후속 source
Actual [assembly](../../src/fesa/analysis/hht_dynamic_assembly.cpp)는 `directional_third=true`에서 local scalar `drilling_constraint_gradient`를 canonical/source order로 조립하여 private `hidden_gradient`에 저장한다. External scalar는 `−n(phi)^T F_phi`이며 shared node당1회 gradient/Hessian을 더하므로 graph의 RC02/RC14 부호·중복 규칙과 일치한다. Constant public dead force의 explicit time 항은0이다. [Algebra](../../src/fesa/analysis/hht_dynamic_algebra.cpp)의 `ConstraintGradient`는 이 authority를 initial null solve, `psi_q N` regularity 및 accepted hidden evidence에 공통 적용하고 required field 누락을 실패로 반환한다. Full physical Hessian projection으로 silent fallback하지 않는다.
Sparse v/a contraction에 Neumaier sum을 적용한 것은 원 항과 scale를 바꾸지 않는 산술 교정이다. 원 physical range mass solve, candidate finite/fixed exact0, `Ar0=ap0`, `A0=a0`, original frame0 보존 및 original/reconstructed full N2/N3/N4 gate는 유지된다. 이 첫 수정 시점의 graph rate partition RHS와 hidden Hessian contraction은 아직 plain reduction이다. Fresh initial-only/actual C09에서 잔류 subtraction/RHS/solve 차이를 확인해야 하며 과거9/9 focused PASS나 old Release C08를 새 source의 통과로 승계하지 않는다.
### Global component selector와 proper-Q 시간 이력
Full global chart의 proper frame change는 `q'=R6 q`이고 continuous physical equation과 RC05 chain-rule rate는 이 선형 변환 아래 공변적이다. 그러나 초기 null의 최대 global 성분을 z로 선택하는 현 method에서는 transformed reduced coordinates가 `p'=L'_p^T R6 Q(p,t)`다. Q가 곡면이면 이 변화는 일반적으로 비선형이며, pivot이 같은 이름의 성분인 경우에도 선형성을 보장하지 않는다. Constant affine coordinate change는 RC03/04 recurrence와 commute하지만 nonlinear change는 Hessian/시간미분 항 때문에 그렇지 않다. 따라서 full physical objectivity·exact tangent·hidden-rate consistency만으로 finite-phi의 **전체 이산 history**가 `1e-10` 이내 공변적이라는 일반 보장은 없다.
[독립 exact recurrence 검산](../../.dryforge/hht-remediation-20261012/approved-review/independent_reduced_covariance_probe.json)은 graph `q=(p,kappa*p^2)`, proper rotation의 `c=4/5,s=3/5`, transformed selector `y=c*p-s*kappa*p^2`를 쓴다. `p0=vp0=0`, constant `ap=a`, `Ar0=a`인 한 p step는 RC03/04를 exact 만족한다. Transformed physical rates로 같은 y recurrence를 계산하면 position defect는 `[3*beta*(1+alpha)-1/4]*s*kappa*h^4*a^2`, velocity defect는 `[3*gamma*(1+alpha)-1]*s*kappa*h^3*a^2`다. 승인 계수 `alpha=-.05,beta=.275625,gamma=.55`에서 두 계수는 비영이다. Fraction 검산은 h halving 시 각각16/8배 감소를 확인했다. 이는 시간 recurrence의 nonlinear reparameterization 비불변성을 보여 주는 toy이며 actual shell force/mass/constraint 검증이나 실제 fixture FAIL 증거가 아니다.
현재 proper-Q testcase는 rigid translation 경로와 별도 단일 shell2step 비영 phi 경로의 all-node/frame q/v/a/A, energy, force 및 triad/director를 비교한다. Ell1, `ell/T`, `ell/T^2`와 fixture별 Eref는 해당 고정 단위 fixture의 positive physical scale로 해석할 수 있다. Force/moment에 모두 숫자1을 쓰는 대조는 load scale1과 ell1인 이 fixture에 한정되며 일반 단위변환 norm을 인증하지 않는다. `maximum_rotation>0`은 graph curvature나 위 reparameterization defect를 해상했다는 조건이 아니다. 기존 N6 `1e-10` 및 C11 판정은 그대로 유지하고 fresh 실행 결과를 읽되, 통과하더라도 general finite-rotation covariance로 확대하지 않는다. 실패하면 같은 endpoint의 constitutive/inertia covariance와 time-update defect를 분리하여 원인을 확인하고, 기준·method를 수정해야 하는지는 메인이 사용자 승인 계약과 대조한다. 현재는 초기 N2 failure 때문에 새 finite-rotation 전체history 판정이 닫히지 않았다.
### Tiny rotation의 direct director increment 후보
Canonical 초기 gradient 교정 뒤 실제 초기 gate를 넘었지만 rotated rigid-translation increment1의 physical moment Newton residual이 계속 남는다는 owner 진단은 별도 failure-prefix 검토 대상이다. 아직 complete native 종료/failed endpoint dump를 읽지 않았으므로 원인이나 해당 source의 실패 완료를 확정하지 않는다. Current `MakeJetTrial`은 full rounded `ExpSkew(phi)*D0`를 만든 뒤 `CovariantIncrement`에서 D0를 뺀다. Tiny phi에서는 full director의 value 변화가 D0의 ULP에 흡수되고 Jet derivative는 유한하게 남을 수 있다.
[독립 standalone MSVC/Fraction quantization probe](../../.dryforge/hht-remediation-20261012/approved-review/independent_director_increment.json)는 대표 rotated D0와 phi scale `1e-18..1e-5`6개를 현재 scalar Rodrigues9항의 같은 coefficient로 평가했다(native compile/run0). `phi=(1e-17,−2e-17,3e-17)`에서 기존 director difference는3성분 모두0인 반면 direct increment는 약 `(−9.486e-18,−1.685e-18,2.039e-18)`이다. Exact stored-coefficient polynomial 대비 direct cross max error=`2.83e-34`, 기존 difference max error=`9.49e-18`이다. Actual 실패 q·Jet AD·full element force·native outer Newton을 replay한 것은 아니다.
동등 수식은 `deltaD=A(theta²)*(phi cross D0)+B(theta²)*(phi cross(phi cross D0))`다. Current complete-Jet A/B 및 기존 branch를 재사용하고 value/gradient/Hessian/directional/mixed를 전부 같은 direct increment에서 계산하면 physical strain energy와 force/tangent 미분의 authority를 유지할 수 있다. `ExpSkew(phi)−I`를 사후 계산하면 이미 흡수된 diagonal increment를 회복하지 못한다. Public full director/triad, principal chart·geometry/opposition predicate, physical point arms와 inertia의 기존 정의는 자동 변경하지 않는다.
Current scalar recovery는 rounded full covariant의 Gram difference이고 returned physical energy도 recovery 값을 사용한다. Direct Jet increment 개선이 recovery 산술까지 자동으로 바꾸지는 않으므로 tiny-state energy/recovery/force 차이를 확인한다. DrillingEnergy의 `I+increment`, polar 및 corotated full-matrix 산술에도 별도 quantization 경계가 남는다. 실패 endpoint에서 physical/drill/inertia force를 분리한 실제 evidence와 same-root graph/full E·N5/경계/rigid-motion 회귀로 교정을 검증하며, tiny phi clamp·moment floor·rotation acceleration0 강제 또는 criterion 변경으로 대체하지 않는다.
후속 strong-F warped/shared N5 mutation은 same q/v/a의 no-F primitive **gradient만** actual operator에 대입하고 actual F/Fdot/Fddot의 fresh residual FD 및 나머지 derivatives를 보존한다. 이 source 구조는 external position-gradient 누락의 분리 검증으로 적합하다. Sparse dof 구조/changed-entry 검사로 fixture 퇴화를 검출한다. Physical Ep block의 tangent는 그 gradient를 쓰지 않으므로 모든4block 각각의 누락검출로 표현하지 않는다. 기존 block-AND/내부 연속쌍 positive/negative sweep 및 strong-F root의 실제 runtime은 아직 PENDING이다.
### Direct increment와 scalar recovery의 실제 수정 범위
[Tiny 원본 actual-element log](../../.dryforge/hht-reduced-c08a-finer-20261013/tiny-old.log)는 rotated uniform tangent-axis tilt `theta=1e-17`에서 physical force와 energy가0이라 zero-state physical Hessian의 `K0*phi`와 force ratio1로 실패한다. [Jet direct-increment scratch](../../.dryforge/hht-reduced-c08a-finer-20261013/tiny-stable.log)는 force ratio=`1.60588e-16`과 Jet energy=`1.6666666666666663e-33`으로 local regression을 통과하지만 public recovery energy0은 남았다. K0는 같은 actual element의 zero-state derivative이므로 이 force 검사는 value/derivative consistency이며 완전히 독립적인 전체 stiffness oracle라고 표현하지 않는다.
후속 production source의 private `ExpSkew(increment_only=true)`는 identity를 처음부터 생략하고 기존 complete-Jet9항/branch를 그대로 사용한다. Scalar `DirectorIncrement`도 같은 coefficient/`.25` 조건을 쓰며 `Geometry.covariant_increment`는 `DeltaG_xi=DerivativeSum(u)+z*DerivativeSum(deltaD)`, eta의 같은 식 및 `DeltaG_zeta=(t/2)*Sum(N deltaD)`다. Scalar `DirectStrain`도 Jet와 같은 `0.5*(G0_i·DeltaG_j+DeltaG_i·G0_j+DeltaG_i·DeltaG_j)`로 바뀌었다. `E33=0`, tying weights, reciprocal/reference frame, material/integration 및 current full director/covariant의 geometry/opposition predicates는 보존된다. 수학적 대응은 정적 적합하며 scalar cross와 Jet matrix 연산의 bitwise 동일성을 요구하지 않는다.
[현재 source-copy local 실행](../../.dryforge/hht-reduced-c08a-finer-20261013/tiny-production.log)은2검사 PASS(1277ms)다. [독립 감사](../../.dryforge/hht-remediation-20261012/approved-review/independent_actual_tiny_energy.json)는 actual production source와 local override copy의 SHA256=`fe7cc9cf4e04d225e2a391d69d4cf420b6c802764041b6adbf77f63e86919f00` exact 일치를 확인했다. Uniform tilt의 독립 leading shear energy `0.5*(5/6)*E/[2*(1+nu)]*t*area*theta²`는 E1000/nu.25/t.1/area1에서=`1.666666666666667e-33`이며 actual Jet와 recovery의 relative error는 각각=`4.16e-16`이다. 원 recovery RED와 후속 local PASS를 구분하며 전체 configured build/runtime의 동결 evidence를 대신하지 않는다.
새 `TinyRotationPreservesPhysicalForceAndRecoveryEnergy`는 unrotated/rotated×flat/warped4case를 검사한다. Zero-state force/energy, positive linearization scale, same-source physical K0의 force/quadratic-energy limit과 flat case의 독립 shear energy=`1.6e-33`(E120/nu.25/t.2/area4)을 대조한다. Warped case는 독립 closed-form stiffness를 추가한 것이 아니다. 기존 finite-amplitude N5·boundary·rigid/objectivity 및 전체 C09/temporal/reference 실행은 별도 확인해야 하며 local2검사로 완료 판정을 확대하지 않는다.
### Mixed point acceleration과 rotary inertia 소실
[Configured direct-delta Debug native8](../../.dryforge/hht-remediation-20261012/adr016-direct-director-debug.native.json)와 [log](../../.dryforge/hht-remediation-20261012/adr016-direct-director-debug.log)는 nonlinear element16검사 PASS 및 C09 FAIL을 기록한다(전체326.12s). Rotated uniform translation은 원 initial/reconstructed frame0를 넘었지만 increment1의100correction 후 실패했다. 최종 `max NtE=1.69482e-32`, `max NtI=0`이므로 작은 null projection을 full physical moment N2 통과로 해석하지 않는다. 이후 source 변경의 실행 결과와 분리한다.
같은 epoch의 [outer20 stored operator dump](../../.dryforge/hht-direct-delta-c09-20261013/inertia-replay.log)를 [독립 Fraction으로 감사](../../.dryforge/hht-remediation-20261012/approved-review/independent_inertia_stored_operator.json)했다. Exported24개의 rotational row 모두 actual native force0, translation `M*a` exact0이지만 rotation `M*a+c`는 비영이고 relative defect1이다. Full39의 exact값=`2.0702748348383957e-19`, full34=`1.8839164365932936e-19`, full27=`−1.5857775965463067e-19`다. Convective c는 독립적으로 약 `1e-37` 규모다. 이는 source가 O15 translation과 작은 rotary contribution을 mass-point acceleration에서 먼저 더하고 row dot/±z 적분 전에 잃는 실제 산술 discrepancy다. 전체 nonconvergence의 모든 원인을 이 한 finding으로 닫지는 않는다.
[독립 standalone MSVC phi0 검산](../../.dryforge/hht-remediation-20261012/approved-review/independent_inertia_acceleration.json)은 flat uniform director, v0, nodal m=.05/t=.1에서 proper rotated tangent의 angular acceleration `1e-17,1e-15,1e-12`와 translation0/20을 조합한6case다. 원 point force는 translation20에서 앞2case의 회전 force를 모두0으로 만들고 마지막 case도 약8% error를 보인다. Integrated mass의 compensated contraction은 exact stored-entry dot 대비 최대 `7.4e-17` error이며 `j*(|d|²I−d dᵀ)*a_phi`, `j=m*t²/12`의 analytic oracle와 mass 차이는=`1.32e-16`이다. 이 probe는 scalar lumped-node 산술이며 full element/finite velocity/일반 C1/시간 이력 검증은 아니다.
후속 actual inertia source는 mass와 independent convective force를 원 quadrature로 적분한 뒤, local24columns의 `M_ij*a_j`와 c를 fixed-order Neumaier sum으로 계산한다. 이는 원 `I=M(q)a+c(q,v)`와 동등하며 c를 `I−Ma`로 회복하지 않는다. Actual physical a·C1≠0 cross mass·mass/null/condition checks를 보존하고 nonfinite result는 실패한다. 원 N2 denominator는 **element별 이미 적분된** `Σ_j |Me_ij*a_ej|+|ce_i|` 및 physical/drill/load 항 그대로다. Pointwise `Σ|scale*h_i·h_j*a_j|`로 확대하거나 rotation floor/force clamp를 넣지 않는다.
[새 theoretical tiny-acceleration test 원본 RED](../../.dryforge/hht-direct-delta-c09-20261013/inertia-tiny-red.log)는 native1/136ms이며 [후속 private inertia12검사 PASS](../../.dryforge/hht-direct-delta-c09-20261013/inertia-green.log)는 native0/11824ms다. Unrotated/proper-Q flat test의 nodal m=.2, `j=m*.2²/12`와 tangent angular acceleration `1e-17`은 독립 analytic 기대값이다. 기존 finite v/a·warped genuine C1·5³ energy/power oracle, fixed derivative sweeps 및 omissions가 포함된다. Private compile은 actual source를 include했으나 configured C09/전체 Debug/reference closure를 대신하지 않는다.
Force-only 교정 뒤에도 position tangent의 `Dh_i·acceleration_point`와 Pdot/Ldot 계산은 mixed point acceleration을 사용한다. 수학적 tangent `DqI=(DqM)a+Dqc`, `DvI=Dvc`는 그대로지만 해당 tiny-term 산술까지 교정됐다고 주장하지 않는다. 필요하면 `Σ_j (Dh_i·h_j+h_i·Dh_j)*a_j+Dh_i·b+h_i·Dqb`를 항/채널별로 분리해 같은 quadrature로 계산하고 fixed N5·kinetic-power/full balance를 확인한다. Genuine nonzero C1는 보존하며 큰 실제 cross moment에 더 작은 항의 최종 quantization이 남는 경우를 zero-C1 소실과 구분한다. 이번 source의 actual C09 endpoint/full history와 후속 temporal/reference 판정은 아직 별도 검증 대상이다.
### Stable inertia의 configured 실행 범위
[동결 identity](../../.dryforge/hht-remediation-20261012/adr016-stable-inertia-debug-source-identity.json)에 연결된 [configured Debug log](../../.dryforge/hht-remediation-20261012/adr016-stable-inertia-debug.log)와 [native8](../../.dryforge/hht-remediation-20261012/adr016-stable-inertia-debug.native.json)은 **13 PASS/1 FAIL**, 216.39s다. Inertia12검사는 PASS이며 strong-F warped/shared actual N5는137.22s PASS다. 앞의 external-gradient omission 준비 상태는 이 testcase의 실행 범위에서 갱신한다. 현재 passing raw sweep를 별도로 독립 감사한 것은 아니므로 이전 weak-F raw8positive/4mutant 증거와 구분한다. Individual2W, psi-tt scaled N5, 부분구속, 일반 finite-rotation covariance, 전체 Debug 및 C08/reference 완료를 뜻하지 않는다.
C09는62.83s 후 **reconstructed frame0 N2 FAIL**이다. Original phi ratio=`2.43187e-16`, reconstructed ratio=`0.4509010842`(numerator=`7.63812e-21`, scale=`1.69397e-20`)다. Stable force가 작은 실제 `M*delta_a`를 보존하여 이전 point-force 산술에 가려진 재구성 차이를 드러냈다. Original full a는 계속 frame0에 보존하며 이 실패를 frame0 제외·translation scale floor로 통과시키지 않는다. 이후 rate/tangent source 변경에는 이 동결 실행을 승계하지 않는다.
### Tiny Dq 및 momentum-rate의 남은 산술 경계
[Actual Dq diagnostic](../../.dryforge/hht-direct-delta-c09-20261013/inertia-dq-risk.log)은 flat phi=v0, node0의 translation a=(15,12,0), angular a=`1e-17*ex`에서 analytic `DqI(phi_z,phi_y)=0`, stable force central FD(h=`1e-5`)=`−3.3333333332500014e-21`을 기록한다. 이 diagnostic testcase는 값을 출력한 PASS이며 tangent의 correctness PASS가 아니다.
[독립 exact Fraction SO(3) 검산](../../.dryforge/hht-remediation-20261012/approved-review/independent_inertia_dq.json)은 `B_j=e_j cross d0`, `DB_j[eta]=0.5*(eta cross(e_j cross d0)+e_j cross(eta cross d0))`, `DqI=j*(DB^T B+B^T DB)*a_phi`를 사용한다. Nodal m=.2/t=.2, `j=m*t²/12`, `a_phi=epsilon*ta`, `eta=tb`에서 결과는 unrotated 및 exact rational proper-Q 모두 `−0.5*j*epsilon*d0`다. Flat 결과=`−3.3333333333333333e-21*ez`는 actual FD와 일치한다. 따라서 force-only 수정 이후의 value/tangent discrepancy가 남았다.
동등 교정은 각 `(Dh_i·h_j+h_i·Dh_j)` coefficient를 원 quadrature로 적분한 뒤 actual a_j를 contraction하거나 translation/rotation/convective 항의 별도 accumulator를 최종 적분까지 보존하는 것이다. Point 내부에서 다시 큰 translation 항과 합치면 같은 소실이 재발한다. Convective `Dqc`, nonzero C1 cross coupling, mass/predicates 및 원 elementwise N2 scale는 유지한다. Unrotated/proper-Q 두 방향의 analytic action과 기존 고정 sweep/연속쌍·genuine-C1 oracle가 회귀 범위다.
Momentum-rate의 독립 최소 oracle도 같은 phi=v0에서 node0 mid-position을 원점에 두고 다른 node a=0으로 만들면 `Pdot=m*a_u`, `Ldot=j*a_phi`다. 큰 orbital term을 제거하여 작은 intrinsic Ldot 소실을 분리할 수 있다. 이 actual regression은 아직 실행되지 않았으며 기존 finite-v energy/power PASS로 tiny mixed-signal Pdot/Ldot를 인증하지 않는다.
### 초기 재구성 partition RHS의 독립 대조
[Actual8row Fraction 감사](../../.dryforge/hht-remediation-20261012/approved-review/independent_c09_partition_rhs.json)는 위 configured log의 stored primitive gradient·original a를 읽었다. 첫4row의 full hidden acceleration dot 및 selected-P RHS는 exact0이고, 같은 rounded products의 Neumaier 합도0이다. Plain partition reduction만 RHS=`+1.734723475976807e-18`을 만들어 `G00=0.0025960274682822085`의 solve가 dependent `a_phi_z=6.6822231165553645e-16`을 만든다. 이것은 coefficient/rank 변경이 아닌 합산 순서의 discrepancy다.
둘째 요소4row에서는 compensated full dot이 약 `1.8e-34..3.85e-34`이고 compensated rounded-product P RHS=`−1.839573100344928e-18`이다. Stored binary64 operands의 exact-product RHS=`−1.788550990472171e-18`와 차이=`−5.10221098727572e-20`는 product rounding이다. Graph만 exact-product dot으로 바꾸면 현재 initializer의 rounded-product/Neumaier authority와 또 달라질 수 있다. 최소 교정은 full hidden evidence와 rate P-partition의 동일 compensated rounded-product reduction이며 초기 q/v/a 계약·mass range/null solve·G·원 acceptance는 유지한다.
후속 source의 `ReconstructPhysicalRates`는 `RateSum`으로 `−psi_t−psi_qP*vp` 및 `−H[v,v]−2psi_qt*v−psi_tt−psi_qP*ap`를 구성한다. Hessian/time의 중간 compensated reduction과 전체 RHS의 부호·P-only selector를 대조했다. Controller `GraphArithmeticIndicator`도 실제 product 순서와 중간 reduction/Neumaier 연산의 radius를 replay하는 구조다. Solve 전 finite RHS 검사와 원 backward-error gate는 유지된다. 이 현재 패치는 **정적 적합/실행 PENDING**이며 actual q0v0뿐 아니라 nonzero H/time fixture의 fresh 실행·CA replay가 필요하다. Initial a를 seed/projection/clamp하거나 N2 floor로 대체하지 않는다.
`RateSumRadius`는 `next=sum+term`, 선택한 `first=sum−next` 또는 `term−next`, `error=first+other`, `correction+=error`, 최종 `sum+correction`의 모든 합/차감에 각각 outward `AddRadius`를 적용한다. Hessian의 두 products, time-gradient product 및 factor2 product의 입력 radius도 별도로 전달한다. [독립 Python/Fraction 검산](../../.dryforge/hht-remediation-20261012/approved-review/independent_rate_sum_radius.json)은 actual8row와 cancellation/subnormal5case의183개 누적 prefix에서 exact 입력합 오차가 radius 이내임을 확인했다. 이는 frozen Neumaier branch의 arithmetic 검산이며 native MSVC 환경·FEM/AD coefficient uncertainty·변경된 nonlinear trajectory의 rigorous bound가 아니다. Whole selector history radius를 reset하거나 N7 factor100을 바꾸지 않는다.
### Dq 및 momentum coefficients의 후속 scratch 검토
[후속 scratch source](../../.dryforge/hht-direct-delta-c09-20261013/inertia-dq-rates-stable.cpp)는 nodal kinetic measure `rho*Ni*dV0`의 각 mass node에서3×6×6 `DqM` coefficient를 먼저 적분한다. Kinetic_shape는 해당 node에서1이고 다른 node0이므로 원 nodal block 밖의 derivative를 버리지 않는다. 원 position derivative의 `Dqh*a` 항을 제거한 뒤 `(Dh_i·h_j+h_i·Dh_j)*a_j`를 integrated coefficient로 복원한다. 남은 tangent는 독립 `Dh_i·b+h_i·Dqb`이며 두 경로 사이의 중복·누락이 없다. `DqI=(DqM)a+Dqc`의 부호·DOF 대응은 정적으로 적합하다.
Momentum coefficients는 같은 positive measure와 actual point position으로 `P_j=∫h_j dm`, `L_j=∫x cross h_j dm`을 적분한다. 최종 `P=ΣP_j*v_j`, `L=ΣL_j*v_j`, `Pdot=ΣP_j*a_j+∫b dm`, `Ldot=ΣL_j*a_j+∫x cross b dm`의 fixed-order compensated contraction을 사용한다. `d(x cross vpoint)/dt=vpoint cross vpoint+x cross apoint`에서 첫항0이므로 Ldot의 추가항은 필요하지 않다. Convective 부분을 Ma에서 차감해 추출하지 않는다. Reference/current geometry와 volume, point arms, mass, kinetic energy, velocity tangent, 기존 rate norm scale 및 elementwise N2 denominator/finite/mass 검사는 유지된다.
[원 momentum diagnostic](../../.dryforge/hht-direct-delta-c09-20261013/inertia-momentum-risk.log)은 active node의 mid-position을 원점으로 두고 큰 translation v/a와 작은 tangent rotation을 조합했을 때 L와 Ldot0을 기록한다. 이는 값을 출력하는 진단이며 통과 증거가 아니다. [후속 scratch15검사](../../.dryforge/hht-direct-delta-c09-20261013/inertia-dq-rates-green.log)는 기존12검사와 diagnostic3개 PASS(34.409s)다. 별도의 [analytic regression source](../../.dryforge/hht-direct-delta-c09-20261013/inertia-dq-rates-analytic-test.inc)는 flat/proper-Q×epsilon `10^-7..10^-20`28case에서 `DqI*tb=−0.5*j*epsilon*d`, `L=Ldot=j*epsilon*ta`를 positive intrinsic scale로 검사한다. [원본 RED](../../.dryforge/hht-direct-delta-c09-20261013/inertia-dq-rates-analytic-red.log) native1/2.245s와 [후속 GREEN](../../.dryforge/hht-direct-delta-c09-20261013/inertia-dq-rates-analytic.log) native0/2.506s를 구분한다. Independent analytic magnitude와 기존 finite-v/genuine-C1 power·고정 tangent sweep을 함께 사용하므로 단일 FD diagnostic만으로 판단하지 않는다.
이 판정은 명시적으로 include한 scratch candidate의 정적·local 회귀 범위다. Production 적용 후 current source/binary identity와 공용 C09/temporal/reference는 다시 연결해야 한다. Full point arm 자체의 coordinate/director quantization, 큰 orbital term과 tiny intrinsic term을 최종 합칠 때의 표현 한계 및 generic tiny convective 항의 coefficient 적분 오차는 남는다. 이를 floor·C1 clamp·kinetic-energy 자동 변경 또는 N7 radius reset으로 보정하지 않는다.
후속 production의 [actual include/identity](../../.dryforge/hht-direct-delta-c09-20261013/inertia-dq-rates-production-identity.json)와 source를 대조했다. Inertia source SHA256=`68df2e221b6fa1423b24884110f24d039c60a6306ed8226f966552e944645b14`, test=`eb4562c8abedcfbc7c2f953b58bae30f67a84d7ccf0bbea9ae384dfcf595f055`다. Scratch 대비 반복 Neumaier lambda를 private `InertiaSum::Add/Value`로 공통화한 것은 같은 합산 분기/곱셈/순서를 보존한다. Coefficients·kinetic_shape1·independent convective 및28case analytic assertions도 일치하여 **production 정적 적합**이다. [Actual production include13검사](../../.dryforge/hht-direct-delta-c09-20261013/inertia-dq-rates-production.log)는 private native0/13 PASS(32.132s)로 닫혔다. 이 local 실제 source 실행과 공용 source/binary closure는 별도이며 old partition Debug/Release 또는 전체 C09/temporal/reference를 승계하지 않는다.
### Compensated partition 이후의 원 N2 잔류 실패
[RateSum 동결 Debug identity](../../.dryforge/hht-remediation-20261012/adr016-compensated-partition-debug-source-identity.json)의 [raw log](../../.dryforge/hht-remediation-20261012/adr016-compensated-partition-debug-raw.log)와 [native8](../../.dryforge/hht-remediation-20261012/adr016-compensated-partition-debug.native.json)은8 PASS/1 C09 FAIL(전체832.13s)이다. 초기 재구성을 넘었으나 increment1/100correction에서 실패했고 `max NtE=3.85186e-33`, `max psi=3.25696e-35`, `max NtI=1.20371e-35`다. 이 실행의 inertia Dq/rates는 후속 coefficient-first production epoch와 다르다.
새 RateSum library/current inertia override의 [별도 identity](../../.dryforge/hht-latest-inertia-c09-20261013/identity.json), [bounded outer20 log](../../.dryforge/hht-latest-inertia-c09-20261013/outer20-runtime.log)는 initial phi ratio=`2.75612e-16`을 통과하고20correction 뒤 의도적으로 중단한 private native1이다. [독립48row·4prefix 감사](../../.dryforge/hht-remediation-20261012/approved-review/independent_c09_outer_channels.json)는 outer20의 원 channel N2를 `rho_u=2.10478e-15` PASS, `rho_phi=0.9997440787` FAIL로 재계산했다. Worst full3의 physical force=`−8.68704002e-17`, inertia=`−4.50003284e-21`, drill=`3.27e-36`다. Raw endpoint 합산 scale는 이미 조립된 scalar이므로 element별 `Σ|Me_ij*a_ej|`를 독립 재구성했다고 주장하지 않는다.
Stored physical/drill/inertia/load components의 exact Fraction 합과 final residual 차이는 phi24row에서 최대=`5.05e-33`이다. 따라서 final residual dot/summation polishing만으로 moment ratio 약1을 `1e-10`으로 줄일 수 없다. Printed `NtE−psi−NtI≈1.366e-32`도 physical moment `O(1e-16)` 대비 roundoff 수준이며 현재 evidence는 scalar/full-force authority gap의 지배를 지지하지 않는다. High translation coordinate는 X3종/Y2종 binary64값으로 나뉘므로 anchored `u−u0`에도 실제 비균일 입력이 남는다. 작은 strain/rotation force라는 이유로 clamp하지 않는다.
이 prefix만으로 stored-state representability의 불가역 한계나 전체 원인을 확정하지 않는다. Natural100 종료와 actual requested correction·high/low roundtrip, fresh tangent action 대비 `Enew−Eold`, 동일 endpoint의 physical linearization을 추가 대조해야 한다. 특히 translation channel이 이미 N2를 만족하더라도 해당 correction을 생략하거나 state를 uniform projection하는 것은 원 Newton의 수정이다. 현재 공용 최신 source의 C09/전체 history와 C08/reference 판정은 별도 PENDING이다.
### Manufactured hidden helper의 external Hessian 계수 중복
[RateSum Release C08a raw log](../../.dryforge/hht-remediation-20261012/adr016-compensated-partition-c08a-release-raw.log)는 승인7grid에서 hidden-a normalized 약 `1.07e-6` 실패를 기록한다. 해당 실패를 interpolation/시간차수 문제 또는 원 hidden 기준의 문제로 단정하지 않는다. Canonical `EvaluateAssembly(directional_third=true)`는 internal scalar Hessian에 shared node당1회 external scalar `−n(q)^T F(t)`의 Hessian을 더한 후 `assembly.hidden_second=psi_qq,total[v,v]`를 반환한다.
반면 현재 `ManufacturedHidden`는 second를 이 total 값으로 시작하고 `−rotation.null_directional_second·F`를 다시 더한다. 즉 external `psi_qq[v,v]=−n_qq[v,v]·F`의 **value와 scale 항을 중복**한다. `n_q*(f_int−F)*a+n*K_int*a`는 ψq*a이며 이 loop 자체는 중복이 아니다. `−2n_q*v*Fdot`, `−n*Fddot`는 별도 explicit-time 항으로 각각1회 필요하다. 원 finite-first·normalized `1e-10`·scale0 exact0·all-frame inventory는 유지하고 중복 항의 value/scale만 제거하는 것은 helper 계약 교정이다.
독립 scalar 미분의 최소 negative fixture는 phi0/d0=ez/v=ex+ez/F=ex, Fdot=Fddot0, a=−ey/3이다. `n=normalize(Jr^-1*d0)`에서 `psi_q*a=+1/6`, `psi_qq[v,v]=−1/6`이므로 실제 hidden2=0이나 중복 helper는−1/6이다. Normalization의 phi0 second correction은 d0 방향이며 F⊥d0라 이 수치는 바뀌지 않는다. Shell source/state를 바꾸지 않고 counting을 검증할 수 있다. 같은 endpoint의 actual reduced scalar-gradient/Hessian/time operator와 helper를 대조하여 수정해야 하며, historical native FAIL을 수정 후 PASS로 재기록하지 않는다.
후속 source에서 중복 항의 value/scale 제거를 정적으로 확인했다. 새 `ExternalDrillingHessianBalancesGradientAcceleration`은 위 독립 scalar 값을 primitive API와 단일-h FD로 확인하는 올바른 smoke다. 그러나 `ManufacturedHidden`를 직접 호출하지 않으므로 helper에 중복항이 재도입되는 mutation을 검출하지 못한다. Helper-level counting 회귀와 fresh C08 실행은 별도이며 이 primitive smoke를 scaled N5 완료로 표현하지 않는다.
### Channel 제한 Newton 승인 전 검토
후속 natural100 raw는 phi가 원 N2에서 실패하지만 full-linear requested correction과 actual high-state의 physical force change가 다른 경로임을 보여준다. Captured final100의 translation을 고정한 [독립48row·identity 감사](../../.dryforge/hht-remediation-20261012/approved-review/independent_fixed_translation_audit.json)는 q/v/a72개 bitwise 불변과2회 뒤 원 full N2 U=`8.70943e-16`, phi=`1.40729921e-13` PASS를 확인했다. Scratch는 hidden/equilibrium/G/N3 검사 후 commit 전 의도 종료하며 native1/5.703s다. 이는 representable endpoint의 존재증거이지 natural adaptive policy/full C09 PASS가 아니다.
[제안의 독립 상세 검토](numerical-review-channel-newton.md)는 trigger·thaw·combined100 budget·BC/rollback/schema와 N7를 구체화한다. 핵심은 actual restricted `K[J,J]` N2-L을 원 all-free full linear check와 같다고 표현하지 않는 것이다. 승인안에 domain 정책 변경을 명시하고 full endpoint criterion은 모두 유지해야 한다. N7는 actual restricted-last solve defect와 original full last/accepted augmented-model defects를 따로 계산하여 omitted U rows와 all auxiliary errors를 보존해야 한다. 원 factor100/threshold/FAIL·INCONCLUSIVE는 유지한다.
후속 사용자 승인으로 restricted Newton/N7 구현이 시작됐다. Reviewer는 production source를 변경하지 않았으며 실제 구현 완료 source 및 회귀 대조는 PENDING이다. Frozen-final 존재증거나 local inertia PASS를 새 전략의 temporal/reference/전체 Debug evidence로 승계하지 않는다.