Skip to content

conformance: promote gf96 selfconsistent -> strict SW-bitexact (71/4/8)#1367

Merged
gHashTag merged 1 commit into
masterfrom
gf96-bitexact-promote
Jul 5, 2026
Merged

conformance: promote gf96 selfconsistent -> strict SW-bitexact (71/4/8)#1367
gHashTag merged 1 commit into
masterfrom
gf96-bitexact-promote

Conversation

@gHashTag

@gHashTag gHashTag commented Jul 5, 2026

Copy link
Copy Markdown
Owner

Summary

Promote gf96 (GoldenFloat96: S1 E36 M59, BIAS=34359738367=2^35-1) from
bitexact_selfconsistent to strict SW-bitexact. INDEX totals
70/5/8 -> 71/4/8 (bitexact / selfconsistent / structural, sum=83).

Status tag: [verified SW] — software chain, NOT an on-silicon Tier-E claim.
encoding != compute != FPGA.

Why the proof differs from gf48 (#1358)

gf48 (M=29) lowers exactly into binary64 (52-bit mantissa) with RNE only on the
FP64-subnormal edge, so #1358 used a fixed-width FP64 RTL bit-model + iverilog.

gf96 has M=59 > 52, so binary64 CANNOT hold the mantissa exactly — a binary64
lowering WOULD round. The pack therefore stores every value as an EXACT dyadic
literal (value_encoding=dyadic) and the decode has NO rounding: every finite
gf96 value is an exact dyadic rational. The iverilog-FP64 witness is not
applicable and no RTL bit-model is required (there is nothing to round). The proof
is an analytic zero-rounding separation-bound plus two structurally independent
EXACT decode paths.

Witnesses (all pass in-sandbox)

  1. Dyadic independent decoder (conformance/gf_wide_independent_witness.py):
    15/15 bit-exact (abs_error=0).
  2. Golden Fraction oracle (conformance/witness/gf96/gf96_decode_ref.py,
    DIFFERENT internal representation): 15/15 exact vs pack.
  3. Two-path cross-check (conformance/witness/gf96/cross_check_representative.py):
    201512/201512 agree over 5-class + exponent boundaries + full-mantissa edges
    • deep-underflow/overflow + 200k deterministic random (seed=96).
  4. Analytic separation-bound (conformance/witness/gf96/SEPARATION_BOUND.md):
    zero-rounding lemma => deterministic over the whole domain.

Memory note: the +-2^35 exponent means 2^(exp-BIAS) is NEVER materialized as an
integer (would OOM); both paths keep the huge power symbolic (peak RSS ~14 MB).

Files

  • conformance/vectors/gf96_conformance_v0.jsonwitnesses[] array + refined
    structural_reason; new sha256
    43127e758d653d26640d38801d42d4daf36fdc70df66a63aadac6a8ce06159fa.
  • conformance/vectors/INDEX_all_formats.json — gf96 kind=bitexact + new sha;
    counts recount 71/4/8.
  • conformance/witness/gf96/ — README.md, gf96_decode_ref.py,
    cross_check_representative.py, SEPARATION_BOUND.md (English/ASCII).
  • docs/NOW.md — gf96 promotion section; remaining selfconsistent 5 -> 4.

Gates

  • tools/wp18_conformance_gate.py verdict = CLEAN (recomputes per-pack sha).
  • docs/NOW.md in diff (now-sync-gate); Last updated: 2026-07-05.
  • l1-traceability: commit carries Closes #1366.

Scope / honesty

  • Additive only; SSOT (83 formats) untouched.
  • HW-decode / HW-compute for gf96 remain [REQUIRES USER ACTION] (4/4 chain on
    AX7203, trinity-fpga Ring 052: Lotus phase automation — brain seal refresh pipeline #199).
  • Remaining selfconsistent after gf96: 4 (gf128, gf256, gf512, gf1024).
    gf256 stays open (bitexact:false, open bias R&D) — do NOT promote.

Anchor: phi^2 + phi^-2 = 3.

Refs #1366

Promote gf96 (GoldenFloat96: S1 E36 M59, BIAS=34359738367=2^35-1) from
bitexact_selfconsistent to strict bitexact. INDEX totals 70/5/8 -> 71/4/8
(bitexact / selfconsistent / structural, sum=83).

Status tag: [verified SW] (software chain, NOT on-silicon Tier-E;
encoding != compute != FPGA).

gf96 has M=59 > 52, so binary64 cannot hold the mantissa exactly: there is
NO FP lowering and NO rounding. Every finite gf96 value is an exact dyadic
rational. Proof = analytic zero-rounding separation-bound + two structurally
independent EXACT decode paths (no RTL bit-model / iverilog needed):

- Witness 1 (dyadic independent decoder): 15/15 bit-exact (abs_error=0).
- Witness 2 (golden Fraction oracle, different internal representation):
  15/15 exact vs pack.
- Two-path cross-check: 201512/201512 agree (5-class + exponent boundaries
  + full-mantissa edges + deep-underflow/overflow + 200k random seed=96).

Memory note: +-2^35 exponent => 2^(exp-BIAS) is never materialized as an
integer (would OOM); both paths keep the huge power symbolic (peak RSS ~14 MB).

Files:
- conformance/vectors/gf96_conformance_v0.json: witnesses[] array + refined
  structural_reason; new sha256.
- conformance/vectors/INDEX_all_formats.json: gf96 kind=bitexact + new sha;
  counts recount 71/4/8.
- conformance/witness/gf96/: README.md, gf96_decode_ref.py,
  cross_check_representative.py, SEPARATION_BOUND.md (English/ASCII).
- docs/NOW.md: gf96 promotion section; remaining selfconsistent 5 -> 4.

wp18_conformance_gate verdict CLEAN. HW-decode / HW-compute remain
[REQUIRES USER ACTION] (trinity-fpga #199). Additive only; SSOT untouched.
Remaining selfconsistent: gf128, gf256, gf512, gf1024 (gf256 do NOT promote).

Anchor: phi^2 + phi^-2 = 3.

Closes #1366
@github-actions

github-actions Bot commented Jul 5, 2026

Copy link
Copy Markdown
Contributor

📓 NotebookLM Notebook linked to this PR

This notebook contains session context, decisions, and artifacts for this work.

@github-actions

github-actions Bot commented Jul 5, 2026

Copy link
Copy Markdown
Contributor

PR Dashboard

Generated at: 2026-07-05 05:41:01 UTC

Summary

Status Count
Total Open PRs 16
PRs with Failing Checks 11
PRs with All Checks Green 5
READY 4
FAILING 11
PENDING 0

Seal Status

  • ⚠️ STALE -- sha256(compiler.rs)=621b9883e268 != manifest seal=49e55df6d444.
    The committed NMSE numbers were certified against an older compiler.rs.
    Run scripts/reseal-check.sh locally for the two-step reseal command (advisory; not a merge gate).

@gHashTag
gHashTag merged commit a13c34e into master Jul 5, 2026
19 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant