Skip to content

Rename GF-T to TEF here too, and gate the prefix hazard that cost a spec - #514

Merged
gHashTag merged 4 commits into
mainfrom
feat/rename-to-tef
Aug 9, 2026
Merged

Rename GF-T to TEF here too, and gate the prefix hazard that cost a spec#514
gHashTag merged 4 commits into
mainfrom
feat/rename-to-tef

Conversation

@gHashTag

@gHashTag gHashTag commented Aug 9, 2026

Copy link
Copy Markdown
Owner

t27 is the source of truth and now names the ladder TEF — Ternary-Exponent Float (t27#2008, merged). This repository still said GF-T in the oracle, the RTL, the tests and the paper.

Renamed by explicit list, not by glob

A glob is what caused the damage. ls conformance/gft*.py matches gfternary_ref.py, and in t27 the same shape of command deleted specs/numeric/gfternary.t27 outright — 384 lines of a 2-bit {−φ, 0, +φ} alphabet that is not a float at all and merely shares a prefix.

from to
conformance/gft_ref.py tef_ref.py
conformance/gft16_ref.py tef16_ref.py
conformance/gft_ref_roundtrip_test.py tef_ref_roundtrip_test.py
conformance/gft_ladder_invariants_test.py tef_ladder_invariants_test.py
fpga/gft/ fpga/tef/
research/arxiv_gft/ research/arxiv_tef/
GFTFormat TEFFormat

gfternary_ref.py, gf_ref.py and gf_mx_ref.py are untouched — verified by grepping for corrupted mentions afterwards, not by intending not to touch them.

The paper carries the decision, not just the name

TEF16 is M = 11. The design-space section no longer says the two positions are unallocated and the decision deferred; it says where they went and why.

They went to mantissa because the corollary forbids recommending a budget without naming a workload — so we named one. Quantised-inference tensors span roughly 2^-14 to 2^14, E_t = 4 already clips nothing at ±40 binades (0 clips in 2000 values), and E_t = 6 would have bought ±364 binades at bit-identical error.

Error falls by exactly 4.00, and the rung stops losing the near bin: 3.70× / 11.37× / 22.28× against takum16.

The title changes with the name

"Ternary Floats" claimed the thing the paper's own corollary refutes. This is a binary-radix float whose exponent is encoded in balanced ternary, and a genuine ternary-radix float measures 0.331 positions per number worse.

Ternary-Exponent Floats: a fixed-field ladder with no regime to decode

The gate

conformance/check_oracle_integrity.py — the three prefix-sharing oracles must each be present, and every local _ref import must resolve. Verified red by removing gfternary_ref.py, green again when restored.

Verification

check result
oracle self-tests 20 passed, 0 failed
ladder invariants, 9 rungs PASS
paper build 19 theorems, clean

🤖 Generated with Claude Code

Dmitrii Vasilev and others added 4 commits August 9, 2026 11:34
These edits were made early in the campaign and never committed; they kept
reappearing as dirty files across branch switches. Landing them rather than
stashing them away again.

GFT16_BEATS_TEKUM16: the accuracy bins were labelled decades when they are powers
of two. That is not cosmetic — GF-T16's exponent reaches +/-40 in powers of two,
about +/-12 decades, so a reviewer checking the labelled axis finds overflow where
the table promises a win and concludes the number was invented. The result is
real; the label was not. The competitor is also renamed takum16, since the oracle
labelled tekum decodes all 65,536 sixteen-bit codes identically to takum.

ARXIV_GFT16_SNIPPET carries the superseded banner it was given when v2 replaced
it.

The fpga-synth skill absorbs the campaign's synthesis recipes and the trinet skill
one cross-reference.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
… control

The suite that shipped before this campaign checked add/mul commutativity, which
is structurally blind to a sign inversion — an inverted sign survives on both
sides of a + b == b + a. That is exactly why a sign-placement defect lived in
gft_ref for as long as it did. Round-trip catches that class; the other five catch
its neighbours: monotonicity of the encoding, +/- symmetry, both ends of the
finite range, zero, and the ladder's width rule 1 + E_t + M = N.

Nine rungs, GF-T4 through GF-T1024, 600 probes each drawn inside the rung's own
range and finer than its mantissa. All pass.

The checks assert rather than print, and I verified they can fail rather than
trusting that they would. Patching the oracle to invert the sign trips
"sign flipped"; patching it to lose zero trips "zero lost"; passing GF-T16 the old
M = 9 trips "1 + 4 + 9 != 16". A test that has never been seen red is not evidence.

Picked up automatically by run_selftests.py: 21 passed, 0 failed.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
t27 is the source of truth and now names the ladder TEF -- Ternary-Exponent
Float. This repository still said GF-T in the oracle, the RTL, the tests and the
paper, so it disagreed with the canon on the format's own name.

Renamed by explicit list rather than by glob, because a glob is what caused the
damage. `ls conformance/gft*.py` matches gfternary_ref.py, and in t27 the same
shape of command deleted specs/numeric/gfternary.t27 outright -- 384 lines of a
2-bit {-phi, 0, +phi} alphabet that is not a float at all and merely shares a
prefix.

  conformance/gft_ref.py                   -> tef_ref.py
  conformance/gft16_ref.py                 -> tef16_ref.py
  conformance/gft_ref_roundtrip_test.py    -> tef_ref_roundtrip_test.py
  conformance/gft_ladder_invariants_test.py-> tef_ladder_invariants_test.py
  fpga/gft/                                -> fpga/tef/
  research/arxiv_gft/                      -> research/arxiv_tef/
  GFTFormat                                -> TEFFormat

gfternary_ref.py, gf_ref.py and gf_mx_ref.py are untouched; verified by grepping
for corrupted mentions afterwards rather than by intending not to touch them.

The paper carries the decision from t27#2005 as well as the name. TEF16 is
M = 11: the design-space section no longer says the two positions are unallocated
and the decision deferred, it says where they went and why. They went to mantissa
because Corollary "the pair" forbids recommending a budget without naming a
workload, so we named one -- quantised-inference tensors span roughly 2^-14 to
2^14, E_t = 4 already clips nothing at +/-40 binades, and E_t = 6 would have
bought +/-364 at bit-identical error. Error falls by exactly 4.00 and the rung
stops losing the near bin: 3.70x / 11.37x / 22.28x against takum16.

The title changes with the name. "Ternary Floats" claimed the thing the paper's
own corollary refutes -- this is a binary-radix float whose exponent is ENCODED in
balanced ternary, and a genuine ternary-radix float measures 0.331 positions per
number worse. It is now "Ternary-Exponent Floats: a fixed-field ladder with no
regime to decode".

conformance/check_oracle_integrity.py is the gate: the three prefix-sharing
oracles must each be present, and every local _ref import must resolve. Verified
red by removing gfternary_ref.py and green again when restored.

Oracle self-tests 20 passed 0 failed; ladder invariants pass on all nine rungs;
the paper builds at 19 theorems.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
…ifted

gen_figures.py transcribed its accuracy numbers by hand and they went stale: the
figure still carried TEF16 at M = 9 and the label "tekum16" long after the rung
moved to M = 11 and that oracle was shown to decode all 65,536 sixteen-bit codes
identically to takum. So the figure disagreed with the table it illustrates,
which is the same defect class as a gate that cannot go red -- a number nobody
rechecks.

It now derives the bins from tef_ref, takum_ref and gf_ref directly at a named
seed, and annotates the ratios it computed rather than ratios written beside them.
The ladder figure gains TEF64 at 7,479 LUTs and 48.20 MHz, which had been measured
but never plotted.

That changed three numbers, because the figure's seed and the table's were
different and the ratios are sampled: 11.37x and 22.28x become 11.21x and 22.68x.
Rather than pick whichever I preferred, the paper now names gen_figures.py at seed
20260809 as the single source for all three and says so in the text, so the figure
and the table cannot drift apart again.

Paper builds at 19 theorems.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@gHashTag
gHashTag merged commit bdab4f0 into main Aug 9, 2026
38 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