Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
577 commits
Select commit Hold shift + click to select a range
99a220d
docs(research): add direct bias SE sqrt rounding contract
seonghobae Sep 4, 2026
ae906ad
test(validation): expose distinct-high bias SE roundoff
seonghobae Sep 4, 2026
d59b9c3
fix(validation): retain distinct-high residual roundoff in bias SE
seonghobae Sep 4, 2026
89c0186
docs(changelog): record distinct-high bias SE repair
seonghobae Sep 4, 2026
b3d43ad
docs(research): trace distinct-high bias SE roundoff
seonghobae Sep 4, 2026
9265b34
test(validation): expose exact-residual bias SE mean roundoff
seonghobae Sep 4, 2026
2fa266b
fix(validation): avoid rounded residual mean in bias SE
seonghobae Sep 4, 2026
ab361b2
docs(changelog): record exact-residual bias SE repair
seonghobae Sep 4, 2026
32f4146
docs(research): trace exact-residual bias SE mean roundoff
seonghobae Sep 4, 2026
d48e251
test(validation): expose common-high SE mean rounding
seonghobae Sep 4, 2026
a63b8d7
fix(validation): preserve common-high low-term dispersion
seonghobae Sep 4, 2026
6fc8e82
docs(validation): record common-high SE repair
seonghobae Sep 4, 2026
57d85e5
docs(research): trace common-high SE mean rounding
seonghobae Sep 4, 2026
426fc5a
test(validation): expose SE scale double rounding
seonghobae Sep 4, 2026
d8b411f
refactor(validation): expose exact power scale within crate
seonghobae Sep 4, 2026
d536e3b
fix(validation): preserve dyadic SE scale
seonghobae Sep 4, 2026
ebce979
docs(changelog): record SE dyadic scale repair
seonghobae Sep 4, 2026
bcb484e
docs(research): trace SE dyadic scale rounding
seonghobae Sep 4, 2026
fbcdb7f
test(validation): expose repeated-level SE double rounding
seonghobae Sep 4, 2026
e0f2445
fix(validation): preserve repeated-level SE identity
seonghobae Sep 4, 2026
ee81953
docs(changelog): record repeated-level SE repair
seonghobae Sep 4, 2026
7741aaa
docs(research): trace repeated-level SE rounding
seonghobae Sep 4, 2026
4386d9a
test(validation): expose singleton-level SE rerounding
seonghobae Sep 5, 2026
79ad03f
fix(validation): preserve singleton-level SE identity
seonghobae Sep 5, 2026
017ad11
docs(changelog): record singleton-level SE repair
seonghobae Sep 5, 2026
4810fc5
docs(research): trace singleton-level SE rounding
seonghobae Sep 5, 2026
7fe4117
test(validation): cover singleton-level SE false-zero refusal
seonghobae Sep 5, 2026
944fac0
docs(research): trace singleton-level SE edge refusal
seonghobae Sep 5, 2026
d3dcd91
test(validation): expose two-observation mean rounding drift
seonghobae Sep 5, 2026
02b0a17
fix(validation): preserve exact two-observation standard error
seonghobae Sep 5, 2026
5603b12
docs(changelog): record two-observation SE repair
seonghobae Sep 5, 2026
905addc
docs(research): trace two-observation SE mean rounding
seonghobae Sep 5, 2026
75ef343
test(validation): expose two-level SE count rounding
seonghobae Sep 5, 2026
89564e4
fix(validation): preserve exact dyadic two-level SE
seonghobae Sep 5, 2026
38b4dbd
test(validation): bind dyadic two-level SE oracle
seonghobae Sep 5, 2026
3bc43da
test(validation): reproduce dyadic two-level SE rounding
seonghobae Sep 5, 2026
77ba100
fix(validation): preserve dyadic two-level SE geometry
seonghobae Sep 5, 2026
f165914
docs(changelog): record dyadic two-level SE repair
seonghobae Sep 5, 2026
9d7bb5c
docs(research): trace dyadic two-level SE rounding
seonghobae Sep 5, 2026
d793f7f
test(validation): expose exact integer-divisor two-level SE rounding
seonghobae Sep 5, 2026
0a4bfcd
fix(validation): preserve exact integer-divisor two-level SE
seonghobae Sep 5, 2026
9651dfd
docs(changelog): record exact integer-divisor two-level SE repair
seonghobae Sep 5, 2026
11b8fd5
docs(research): trace integer-divisor two-level SE rounding
seonghobae Sep 5, 2026
6dc8116
test(validation): expose rational-square two-level SE rounding
seonghobae Sep 5, 2026
8f2803c
fix(validation): preserve rational-square two-level SE scale
seonghobae Sep 5, 2026
f0bb7af
docs(changelog): record rational-square two-level SE repair
seonghobae Sep 5, 2026
c5cbf6f
docs(research): trace rational-square two-level SE repair
seonghobae Sep 5, 2026
8b7995d
test(validation): expose rational-scale subnormal double rounding
seonghobae Sep 5, 2026
ab0f0df
fix(validation): round rational-scale subnormal standard errors once
seonghobae Sep 5, 2026
900b209
docs(changelog): record subnormal rational-scale rounding repair
seonghobae Sep 5, 2026
022797f
docs(research): trace rational-scale subnormal rounding repair
seonghobae Sep 5, 2026
4daeb65
test(validation): cover subnormal rational rounding boundaries
seonghobae Sep 5, 2026
8f6916d
test(validation): cover exact subnormal rational projection branches
seonghobae Sep 5, 2026
edb8494
docs(research): record subnormal rounding boundary coverage
seonghobae Sep 5, 2026
5cb45a4
test(validation): expose anchor-order standard-error drift
seonghobae Sep 5, 2026
159659a
fix(validation): canonicalize exact translation anchors
seonghobae Sep 5, 2026
7e57b93
docs(changelog): record anchor-invariant bias standard error
seonghobae Sep 5, 2026
229fdd6
docs(research): trace anchor-order standard-error repair
seonghobae Sep 5, 2026
49343ab
test(validation): expose exact-anchor conditioning roundoff
seonghobae Sep 5, 2026
0fc3ea9
fix(validation): prefer conditioned exact translation anchor
seonghobae Sep 5, 2026
2793ff5
docs(changelog): record exact-anchor conditioning repair
seonghobae Sep 5, 2026
e3ab276
docs(research): trace exact-anchor conditioning evidence
seonghobae Sep 5, 2026
32dcab8
test(validation): expose three-level SE double rounding
seonghobae Sep 5, 2026
bee85e3
fix(validation): preserve exact three-level rational-square SE
seonghobae Sep 5, 2026
8260bc0
test(validation): cover all three-level SE permutations
seonghobae Sep 5, 2026
5757dda
docs(validation): record three-level rational-square SE repair
seonghobae Sep 5, 2026
4514a07
docs(research): trace three-level SE rational-square repair
seonghobae Sep 5, 2026
67fa485
test(validation): expose three-level scale invariance rounding
seonghobae Sep 5, 2026
dcaf25b
fix(validation): preserve three-level exact scale invariance
seonghobae Sep 5, 2026
31b1aff
docs(changelog): record three-level scale-invariance repair
seonghobae Sep 5, 2026
1eaac11
docs(research): trace three-level scale invariance repair
seonghobae Sep 5, 2026
fe013e7
test(validation): expose three-level square underflow
seonghobae Sep 5, 2026
d3660d4
fix(validation): preserve three-level subnormal dispersion
seonghobae Sep 5, 2026
ac833ec
docs(changelog): record three-level underflow repair
seonghobae Sep 5, 2026
8bb3557
docs(research): trace three-level underflow invariance
seonghobae Sep 5, 2026
978c422
test(validation): expose four-observation ratio-sqrt rounding
seonghobae Sep 5, 2026
3de7a73
fix(validation): round exact four-observation dispersion once
seonghobae Sep 5, 2026
ea60947
fix(validation): route bias SE through exact dispersion admission
seonghobae Sep 5, 2026
2c68909
refactor(validation): name bounded bias SE service by role
seonghobae Sep 5, 2026
622d168
refactor(validation): route bias SE through bounded service
seonghobae Sep 5, 2026
170f77e
refactor(validation): remove superseded module path
seonghobae Sep 5, 2026
49c46aa
docs(validation): record exact four-observation dispersion rounding
seonghobae Sep 5, 2026
11b5953
docs(research): trace exact four-observation SE rounding
seonghobae Sep 5, 2026
b92a4d6
test(validation): cover bounded four-observation SE proof edges
seonghobae Sep 5, 2026
c803249
test(validation): cover exact SE overflow and numerator bounds
seonghobae Sep 5, 2026
0857d5a
docs(research): complete GAP-111 source and coverage lineage
seonghobae Sep 5, 2026
4f22313
test(validation): expose GAP-112 reduced-ratio admission
seonghobae Sep 5, 2026
ed1a876
fix(validation): reduce exact four-observation ratio
seonghobae Sep 5, 2026
28dde0f
docs(changelog): record GAP-112 reduced-ratio repair
seonghobae Sep 5, 2026
f62b56d
docs(research): trace GAP-112 reduced-ratio admission
seonghobae Sep 5, 2026
50153a1
test(validation): expose large reduced-ratio SE rounding
seonghobae Sep 5, 2026
dbf6b40
fix(validation): prove large exact four-observation ratios
seonghobae Sep 5, 2026
ca85765
docs(changelog): record large reduced-ratio SE proof
seonghobae Sep 5, 2026
37e3def
docs(research): trace large reduced-ratio SE proof
seonghobae Sep 5, 2026
5878ec1
test(validation): reproduce five-observation SE rounding
seonghobae Sep 5, 2026
4129827
fix(validation): admit bounded five-observation pair-distance SE
seonghobae Sep 5, 2026
4f6f61d
docs(changelog): record five-observation SE pair-distance proof
seonghobae Sep 5, 2026
8f7dbf8
docs(research): trace five-observation SE pair-distance proof
seonghobae Sep 5, 2026
cb07b89
test(validation): reproduce six-observation SE rounding
seonghobae Sep 5, 2026
8e194dc
fix(validation): admit bounded six-observation pair-distance SE
seonghobae Sep 5, 2026
d709199
docs(changelog): record six-observation SE pair-distance proof
seonghobae Sep 5, 2026
d2d8617
docs(research): trace six-observation SE pair-distance proof
seonghobae Sep 5, 2026
a1de7ae
test(validation): expose seven-observation SE rounding
seonghobae Sep 5, 2026
2907e46
fix(validation): admit exact seven-observation SE proof
seonghobae Sep 5, 2026
78d5ed3
docs(changelog): record seven-observation SE proof
seonghobae Sep 5, 2026
4efe242
docs(research): trace seven-observation SE rounding
seonghobae Sep 5, 2026
40413dc
test(validation): expose eight-observation bias SE rounding
seonghobae Sep 5, 2026
26ca2d6
fix(validation): admit exact eight-observation bias SE proof
seonghobae Sep 5, 2026
2641b26
docs(changelog): record eight-observation bias SE proof
seonghobae Sep 5, 2026
52fa2c8
docs(research): trace eight-observation bias SE rounding
seonghobae Sep 5, 2026
c7b6537
test(validation): expose nine-observation bias SE rounding
seonghobae Sep 5, 2026
bcd2ab5
fix(validation): admit exact nine-observation bias SE proof
seonghobae Sep 5, 2026
f575fa2
docs(changelog): record nine-observation bias SE proof
seonghobae Sep 5, 2026
c76f002
docs(research): trace nine-observation bias SE rounding
seonghobae Sep 5, 2026
813c97e
test(validation): expose ten-observation bias SE rounding
seonghobae Sep 5, 2026
1bff503
fix(validation): admit exact ten-observation bias SE proof
seonghobae Sep 5, 2026
2dacce5
docs(changelog): record ten-observation bias SE proof
seonghobae Sep 5, 2026
bf32b50
docs(research): trace ten-observation bias SE rounding
seonghobae Sep 5, 2026
967e1e0
test(validation): expose eleven-observation bias SE rounding
seonghobae Sep 5, 2026
59c5a4e
fix(validation): admit exact eleven-observation pair distances
seonghobae Sep 5, 2026
2e9c6a5
docs(changelog): record eleven-observation bias SE proof
seonghobae Sep 5, 2026
478a28b
docs(research): trace eleven-observation bias SE rounding
seonghobae Sep 5, 2026
b6ac111
test(validation): expose twelve-observation bias SE rounding
seonghobae Sep 5, 2026
035cf39
fix(validation): admit exact twelve-observation pair distances
seonghobae Sep 5, 2026
369af46
test(validation): expose thirteen-observation bias SE rounding
seonghobae Sep 5, 2026
0b8727e
fix(validation): admit exact thirteen-observation pair distances
seonghobae Sep 5, 2026
db40397
test(validation): expose fourteen-observation bias SE rounding
seonghobae Sep 5, 2026
58efe80
fix(validation): admit exact fourteen-observation pair distances
seonghobae Sep 5, 2026
05e97b3
docs(validation): trace exact pair-distance GAP-121 through GAP-123
seonghobae Sep 5, 2026
1c8a7ce
test(validation): expose fifteen-observation bias SE rounding
seonghobae Sep 5, 2026
3cc041e
fix(validation): admit exact fifteen-observation pair distances
seonghobae Sep 5, 2026
93f0ea9
docs(validation): trace fifteen-observation exact bias SE
seonghobae Sep 5, 2026
65d3965
test(validation): expose sixteen-observation bias SE rounding
seonghobae Sep 5, 2026
5da82b2
test(validation): correct sixteen-observation permutation fixture
seonghobae Sep 5, 2026
a509ae9
fix(validation): admit exact sixteen-observation pair distances
seonghobae Sep 5, 2026
3d2297c
docs(validation): trace sixteen-observation exact bias SE
seonghobae Sep 5, 2026
757fb0e
test(validation): characterize bias SE exact-proof budget
seonghobae Sep 5, 2026
d15282f
docs(validation): define exact-proof resource evidence
seonghobae Sep 5, 2026
e476d66
test(validation): characterize exact-proof resource envelopes
seonghobae Sep 5, 2026
5d03068
chore(validation): measure exact-proof layout alternatives
seonghobae Sep 5, 2026
ffbd320
docs(validation): record exact-proof budget characterization
seonghobae Sep 5, 2026
ca8f993
docs(validation): refine exact-proof resource evidence
seonghobae Sep 5, 2026
5a51260
docs(test): distinguish exact-proof resource envelopes
seonghobae Sep 5, 2026
797f7ca
docs(ops): refine numerical proof resource contract
seonghobae Sep 5, 2026
c70210e
test(validation): characterize linear proof admission subset
seonghobae Sep 5, 2026
579604a
docs(validation): record linear proof admission subset
seonghobae Sep 5, 2026
da7e830
docs(validation): note linear admission asymmetry
seonghobae Sep 5, 2026
bef1a47
docs(test): require linear proof fallback parity
seonghobae Sep 5, 2026
da35373
docs(operability): preserve pair proof on linear refusal
seonghobae Sep 5, 2026
c6b237e
test(validation): measure hybrid exact-proof fallback
seonghobae Sep 5, 2026
4576545
docs(validation): record hybrid exact-proof measurement
seonghobae Sep 5, 2026
c077b30
docs(research): trace hybrid exact-proof budget
seonghobae Sep 5, 2026
df8f46b
docs(test): require executable hybrid proof budget evidence
seonghobae Sep 5, 2026
cd0f9a7
docs(operability): make hybrid proof budget observable
seonghobae Sep 5, 2026
4f1bd2c
test(validation): expose missing dyadic normalization in proof budget
seonghobae Sep 5, 2026
d423b57
fix(validation): normalize dyadic unit in proof-budget kernel
seonghobae Sep 5, 2026
4a3d988
fix(validation): normalize hybrid proof-budget dyadic scale
seonghobae Sep 5, 2026
08b8224
docs(changelog): correct proof-budget dyadic normalization evidence
seonghobae Sep 5, 2026
55bb810
docs(research): correct normalized O(n) proof-budget evidence
seonghobae Sep 5, 2026
736bc8d
refactor(validation): keep proof-budget harness clippy-clean
seonghobae Sep 5, 2026
81708ab
docs(test): require canonical dyadic proof-budget normalization
seonghobae Sep 5, 2026
ee3a0f8
docs(operability): correct normalized proof-budget boundary
seonghobae Sep 5, 2026
96f17c0
fix(validation): check dyadic restoration overflow explicitly
seonghobae Sep 5, 2026
0810002
test(validation): add wider exact-proof intermediate reference
seonghobae Sep 5, 2026
0bd805d
test(validation): measure wider exact-proof reference
seonghobae Sep 5, 2026
8ec2092
docs(validation): record wider exact-proof reference
seonghobae Sep 5, 2026
61acee8
docs(validation): trace wider exact-proof reference
seonghobae Sep 5, 2026
a71b55c
docs(validation): make proof-budget tests wider-reference current
seonghobae Sep 5, 2026
dd2b1c6
docs(validation): make proof-budget operability wider-reference current
seonghobae Sep 5, 2026
b7e4da3
test(validation): prove pair-admitted accumulator bound
seonghobae Sep 5, 2026
67503c0
docs(validation): record wide-linear admission bound
seonghobae Sep 5, 2026
88a2458
docs(research): prove wide-linear accumulator admission bound
seonghobae Sep 5, 2026
4b7fc34
docs(validation): correct wide-linear test budget
seonghobae Sep 5, 2026
dbd55e2
docs(validation): correct wide-linear operability budget
seonghobae Sep 5, 2026
3136739
test(validation): require narrow-wide-pair proof route
seonghobae Sep 5, 2026
ce4ed27
fix(validation): route exact proof through wide product before pairs
seonghobae Sep 5, 2026
5ad7021
docs(changelog): record narrow-wide-pair proof route
seonghobae Sep 5, 2026
387be84
docs(research): trace narrow-wide-pair exact-proof candidate
seonghobae Sep 5, 2026
a2c776e
docs(test): make wide-hybrid route executable authority
seonghobae Sep 6, 2026
abd9547
docs(operability): route bias proof through Wide256 before pairs
seonghobae Sep 6, 2026
d3f5c85
test(validation): document six-observation exact SE contract
seonghobae Sep 6, 2026
ee0ae9f
test(validation): document Wilson exact-count rounding contract
seonghobae Sep 6, 2026
b8a4efc
ci(validation): materialize pinned rustfmt evidence
seonghobae Sep 6, 2026
f74d9ac
test(validation): require pair-to-Wide256 admission proof
seonghobae Sep 6, 2026
e9a7dee
fix(validation): prove pair admission fits Wide256 products
seonghobae Sep 6, 2026
180de9a
docs(validation): record Wide256 admission bound
seonghobae Sep 6, 2026
1d85c82
docs(validation): consolidate Wide256 admission note
seonghobae Sep 6, 2026
f236dbe
docs(validation): tighten Wide256 admission bound
seonghobae Sep 6, 2026
26d727a
docs(research): prove Wide256 product capacity
seonghobae Sep 6, 2026
1f765a7
test(validation): document coverage contracts
seonghobae Sep 6, 2026
aefefba
fix(validation): document remaining hosted coverage contracts
seonghobae Sep 6, 2026
5a19b63
test(validation): characterize represented Wide256 recovery
seonghobae Sep 6, 2026
f082afa
docs(validation): trace represented Wide256 reachability
seonghobae Sep 6, 2026
b5e66d0
docs(validation): record represented wide recovery
seonghobae Sep 6, 2026
a842317
test(validation): expose midpoint width after Wide256 recovery
seonghobae Sep 6, 2026
66f0828
docs(validation): trace exact midpoint width boundary
seonghobae Sep 6, 2026
abd1b34
docs(validation): record exact midpoint width finding
seonghobae Sep 6, 2026
41e77ab
docs(validation): extend exact-proof test strategy
seonghobae Sep 6, 2026
e1ca9c7
docs(validation): update exact-proof operability boundary
seonghobae Sep 6, 2026
aab9fe9
test(validation): characterize exponent-safe wide midpoint comparison
seonghobae Sep 6, 2026
17a9e8a
docs(validation): record exponent-safe wide comparison characterization
seonghobae Sep 6, 2026
c682aa2
docs(validation): trace exponent-safe wide midpoint comparison
seonghobae Sep 6, 2026
f771736
test(validation): require wide exact midpoint comparison
seonghobae Sep 6, 2026
e4a85f5
fix(validation): widen exact midpoint comparison products
seonghobae Sep 6, 2026
af9b7d9
docs(validation): record wide midpoint production integration
seonghobae Sep 6, 2026
bda01d6
docs(validation): trace production wide exact comparison
seonghobae Sep 6, 2026
1240ace
test(validation): pin exact midpoint tie-to-even
seonghobae Sep 6, 2026
073d8d9
docs(validation): record exact midpoint tie coverage
seonghobae Sep 6, 2026
7a2ab0a
test(validation): characterize represented exact-route equivalence
seonghobae Sep 6, 2026
0460463
docs(validation): trace represented route equivalence
seonghobae Sep 6, 2026
2a0a5e0
docs(validation): record represented route equivalence
seonghobae Sep 6, 2026
2bc1d22
test(validation): characterize anchor-linear proof admission
seonghobae Sep 6, 2026
8050b49
docs(validation): record anchor-linear admission finding
seonghobae Sep 6, 2026
ea592b3
docs(research): trace anchor-linear proof admission
seonghobae Sep 6, 2026
fd9f9ff
test(validation): expose non-minimum anchor rounding gap
seonghobae Sep 6, 2026
81ba770
fix(validation): admit exact non-minimum anchor bias SE
seonghobae Sep 6, 2026
53b5b41
docs(validation): record exact anchor production repair
seonghobae Sep 6, 2026
b84b7fe
docs(research): trace deterministic exact-anchor bias-SE repair
seonghobae Sep 6, 2026
bc0ed67
docs(test): cover non-minimum exact-anchor bias-SE regression
seonghobae Sep 6, 2026
fbd7c54
docs(ops): operate deterministic exact-anchor bias-SE proof
seonghobae Sep 6, 2026
9f40319
test(validation): expose missing zero-anchor exact route
seonghobae Sep 6, 2026
6cf30ee
fix(validation): include neutral exact anchor in bias SE proof
seonghobae Sep 6, 2026
dc83dbf
docs(validation): trace neutral-anchor follow-up repair
seonghobae Sep 6, 2026
a6cceb6
docs(research): extend exact-anchor proof to neutral zero
seonghobae Sep 6, 2026
c8159c2
docs(test): require neutral-anchor exact bias-SE coverage
seonghobae Sep 6, 2026
103768f
docs(ops): cover neutral-anchor bias-SE recovery route
seonghobae Sep 6, 2026
e0b3248
test(validation): require neutral-zero linear proof first
seonghobae Sep 6, 2026
2b62bd4
fix(validation): run neutral-zero exact proof before quadratic fallbacks
seonghobae Sep 6, 2026
d57bf6c
docs(validation): trace neutral-zero linear production route
seonghobae Sep 6, 2026
763eba8
docs(changelog): record neutral-zero linear resource repair
seonghobae Sep 6, 2026
6ec2d31
docs(test): require linear-first exact-proof route evidence
seonghobae Sep 6, 2026
5a27c64
docs(operability): adopt linear-first exact-proof route
seonghobae Sep 6, 2026
3c69926
test(validation): document extreme decision contracts
seonghobae Sep 6, 2026
456a475
test(validation): document subnormal and Wilson evidence contracts
seonghobae Sep 6, 2026
69b8e8e
test(validation): document rational and extreme Wilson contracts
seonghobae Sep 6, 2026
123af90
test(validation): document repeated-level and percentile support cont…
seonghobae Sep 6, 2026
d40bfbf
test(validation): require evidence before conditioned anchor fallback
seonghobae Sep 6, 2026
14e7862
fix(validation): remove unproven conditioned anchor fallback
seonghobae Sep 6, 2026
206c178
test(validation): retire stale anchor terminology
seonghobae Sep 6, 2026
c4ccda1
test(validation): document reduced-ratio rounding contracts
seonghobae Sep 6, 2026
da703fc
test(validation): align route equivalence with neutral-zero productio…
seonghobae Sep 6, 2026
f5ca12c
docs(research): align bias-SE proof trace with production route
seonghobae Sep 6, 2026
2cd38bc
docs(changelog): record neutral-zero route consolidation evidence
seonghobae Sep 6, 2026
bcf7b3d
docs(test): align bias-SE validation with surviving routes
seonghobae Sep 6, 2026
6730235
docs(ops): align bias-SE resource route with production
seonghobae Sep 6, 2026
43d2083
test(validation): remove copied exact-route implementation from oracle
seonghobae Sep 6, 2026
3ddba8d
docs(research): make bias SE route evidence independent
seonghobae Sep 6, 2026
4521418
docs(changelog): correct bias SE oracle authority
seonghobae Sep 6, 2026
eae187f
test(validation): cover every admitted bias-SE sample count
seonghobae Sep 6, 2026
9634c5b
test(validation): document exact-count rounding contracts
seonghobae Sep 6, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
49 changes: 49 additions & 0 deletions .github/workflows/validation-rustfmt-evidence.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
name: Validation Rustfmt Evidence

on:
push:
branches:
- fix/validation-bias-overflow-safe-mean
paths:
- "crates/**"
- ".github/workflows/validation-rustfmt-evidence.yml"

permissions:
contents: read

concurrency:
group: validation-rustfmt-evidence-${{ github.ref }}
cancel-in-progress: true

jobs:
format:
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- name: Checkout exact branch head
uses: actions/checkout@631c942040754b6e095e929c1677c07e10ed4f87
with:
persist-credentials: false
- name: Install pinned Rust formatter
run: rustup toolchain install 1.98.0 --profile minimal --component rustfmt
- name: Materialize canonical rustfmt output
run: |
set -euo pipefail
cargo +1.98.0 fmt --all
git diff --check
git diff --binary > "${RUNNER_TEMP}/rustfmt.patch"
git diff --name-only --diff-filter=ACM -z | tar --null -T - -cf "${RUNNER_TEMP}/rustfmt-tree.tar"
git diff --name-only --diff-filter=ACM > "${RUNNER_TEMP}/rustfmt-files.txt"
test -s "${RUNNER_TEMP}/rustfmt.patch"
test -s "${RUNNER_TEMP}/rustfmt-files.txt"
- name: Upload immutable formatting evidence
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
name: validation-rustfmt-${{ github.sha }}
path: |
${{ runner.temp }}/rustfmt.patch
${{ runner.temp }}/rustfmt-tree.tar
${{ runner.temp }}/rustfmt-files.txt
retention-days: 1
if-no-files-found: error
compression-level: 0
3 changes: 3 additions & 0 deletions CHANGELOG.d/validation-bias-cancellation-roundoff.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
### Fixed

- Validation Evidence mean-bias accumulation now retains error-free low terms from opposite-sign cancellation before scale reduction. Repeated sub-ULP residuals can therefore contribute when their combined represented mass changes the final bias, while exact cancellation and fail-closed unrepresentable results keep their existing semantics.
3 changes: 3 additions & 0 deletions CHANGELOG.d/validation-bias-compensated-division.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
- Preserve mixed-sign Validation Evidence mean-bias compensation through the original scientific denominator so a correctly retained low term is not rounded into the numerator and lost again before division.
- Add a public mirrored contract for the represented residual boundary `[2^-53, -2^-52, -(1 + 2^-52)]`, whose exact mean rounds to `±0x1.5555555555557p-2`.
- Keep same-sign arithmetic, reusable psychometric estimation ownership, and `bias_standard_error` unchanged.
17 changes: 17 additions & 0 deletions CHANGELOG.d/validation-bias-exact-proof-budget-characterization.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# Validation bias-SE exact-proof budget characterization

- Correct the pair-record resource evidence for 3,162 observations to 4,997,541 records and lock exact pair counts in a Rust characterization contract.
- Distinguish the current minimum-shifted O(n) `u128` intermediate envelope (`n=2,047` at aligned diameter `2^53`) from the wider exact pair-square numerator envelope (`n=4,095` for the same diameter); neither is a production sample-count budget.
- Normalize the shared power-of-two dyadic unit before judging checked O(n) intermediates. The former `D=2^58, n=65` refusal was a characterization artifact: factoring the common `2^58` unit reduces the aligned coefficients to zero/one and preserves the exact restored numerator `2^122` without pair fallback.
- Preserve the non-equivalence finding with a normalized counterexample rather than the raw-scale artifact. With one zero and the remaining coefficients at odd diameter `D=2^58+1`, the common dyadic unit is one; both pair and narrow O(n) kernels fit at `n=64`, while at `n=65` the exact pair numerator still fits `u128` but the narrow O(n) products require 129-bit intermediates before cancellation.
- Record the canonical accumulator bound `Σc_i <= Σc_i² <= Σ(i<j)(c_i-c_j)²` for the earlier nonnegative minimum-anchor characterization; pair-admitted coefficient-sum or square-sum overflow is not a valid wider-path refusal hypothesis. Remaining wider-path refusal analysis belongs to full-width product/subtraction, scale restoration, denominator/midpoint proof, or upstream represented-input admission.
- Add a dependency-free two-limb `Wide256` O(n) reference and a measured candidate route `narrow O(n) -> Wide256 O(n) -> buffered pair fail-closed fallback`. RED `3136739460ef0c8e13c044a7e5b04891e4f4e23d` requires the missing route; repair `ce4ed2722e160eb0ca0ee2d636a5eca55e3ff2d5` implements it and records both wide-product selection and pairwise fallback separately in CSV.
- The corrected harness keeps the existing narrow-to-pair hybrid for comparison. On odd `D=2^58+1, n=65`, that predecessor hybrid still allocates the pair buffer, while the new narrow-to-wide-to-pair candidate must recover the same exact numerator through `Wide256` with `used_wide_product=true` and `used_pairwise_fallback=false`. Power-of-two-normalized `n=65` and odd `n=64` remain narrow-path admissions.
- Represented-input equivalence distinguishes proof admission from public numerical correctness. Characterization `2bc1d2284d75154e020640adb573c1cfadf005fb` uses residuals `[0,1,2^-54,2]`: every neutral-zero coordinate is exact, but `1 - 2^-54` rounds in binary64, so the O(n²) pairwise-f64 proof refuses. On common unit `2^-54`, integer coordinates `[0,2^54,1,2^55]` give exact pair numerator `3569704090242693886528325169446915`; the generic fallback happens to return the correct public value.
- Add source-level RED `fd9f9ff2c5c395e4cc13042232f4deef018adb48` for residuals `[0,1,2,-2^53]`. The minimum residual cannot exactly translate `1`, while neutral zero preserves every coordinate. Signed unit-one coordinates give `P=243388915243820099130562543878155`, so `SE(mean)^2=P/48`; the predecessor translated floating-moment path returns `0x4320000000000000` while exact rounding requires adjacent `0x4320000000000001`. Its Actions runs were cancelled by the immediate repair push and are not hosted RED evidence.
- Initial production repair `81ba770cc4812c8fbeb4b3529f0a73b41abbed0f` kept pairwise exact accumulation first and searched represented residual anchors. Follow-up RED `9f403194a2ec1636531c2dfe9229cfb34b73d747` showed that observed anchors alone are incomplete: residuals `[1,2^-54,2,3]` have no observed universal exact anchor, while neutral dyadic anchor `0` preserves all coordinates. On unit `2^-54`, `P=6490371073168534319490338297741315`; exact rounding requires `0x3fe4a7e9cb8a3491`, while the predecessor translated floating-moment fallback returns adjacent `0x3fe4a7e9cb8a3492`.
- Repair `6cf30eeb549c0df0377bda1111cf46396e8282a3` temporarily included neutral zero plus represented residuals in a deterministic exact-anchor set and reused signed dyadic/Wide256 cancellation plus the exact midpoint rounder. That closed the demonstrated correctness defects but retained O(n²) anchor scanning.
- Source-level route-order RED `e0b324864e48a503e2aba0d2a487a0b95f5276ed` required production to attempt `neutral_zero_linear` before quadratic proofs. Repair `2b62bd46eb0c391327d2285c2244a76f5a1e0449` added a two-pass neutral-zero signed-dyadic/Wide256 kernel, O(n) in time with O(1) proof storage after the residual vector. The superseded RED did not finish a hosted failing run and is not claimed as hosted RED evidence.
- A later retention criterion required the conditioned observed-anchor fallback to prove unique bounded admission after neutral-zero refusal. The checked-in corpus supplied no such represented fixture. RED `d40bfbf98b36562164d15d505f8f8825fd1c1349` and repair `14e7862f4ddccce54f3b93d4dac89adbf047ba77` therefore remove that unsupported O(n²) route. Production order is now `neutral_zero_linear -> pairwise_reference -> generic_fallback`; this is evidence-based consolidation, not a theorem that pairwise is globally redundant.
- Intermediate commit `da703fc50e136ed79e12262909c9f400a3945621` replaced the stale minimum-anchor helper but copied production `Wide256`, dyadic parsing, scaling, and neutral-zero arithmetic into the integration characterization and described `n=17..2050` as production-aligned despite the production `n=4..=16` admission. Repair `43d208383b765a3424019de45530af77ca484d78` removes that source copy: admitted `n=4` and `n=16` families now use an independent `i128/u128` direct pair-distance oracle plus audited output bits, forward/reversed/rotated order invariance is checked through the public API, and `[-2^53,0,1,2^53]` remains the neutral-zero-only admission witness with `P=2^109+3` and bits `0x432a20bd700c2c3e`. Wider `n>16` evidence remains characterization-only rather than a production-route test.
- Keep production `bias_standard_error` sample admission unchanged at `n=4..=16`. A budget change beyond 16 still requires broad pair/neutral-zero same-domain equivalence, truthful production route evidence, recorded Rust 1.98.0 release-mode CPU/raw CSV and allocator/RSS evidence, applicable buyer-path p95 evidence, exact-head Rust/rustdoc/100% line+branch/security/documentation GREEN, current TRACEABILITY/research/operator doctoring, and qualifying independent current-head review.
5 changes: 5 additions & 0 deletions CHANGELOG.d/validation-bias-overflow-safe-mean.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
### Fixed

- `validation_core::mean_bias` now computes finite signed residual means without allowing either raw-sum overflow or largest-scale normalization to erase a representable low-order bias after extreme mixed-sign cancellation. Opposite signs cancel at represented magnitude first; the remaining one-sign mass is power-of-two normalized and divided by the original recovery denominator before scale restoration.
- `validation_core::bias_standard_error` reuses the same stable bias mean and scales deviations before squaring, forming the SEM directly rather than materializing an avoidably overflowing raw square sum or sample variance. Constant extreme finite bias retains its exact zero standard error, and representable non-constant extreme cases remain measurable.
- Exact cancellation remains zero; a mathematically non-zero mean or standard error that would become false zero only because it falls below binary64 range fails closed rather than being reported as perfect recovery.
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
### Fixed

- Preserve a representable mean signed bias when individual `recovered - truth` residuals overflow but opposing represented input terms cancel. The fallback keeps the original paired-observation denominator, preserves minimum-subnormal results after extreme cancellation, and still fails closed when the final mean bias itself is unrepresentable.
3 changes: 3 additions & 0 deletions CHANGELOG.d/validation-bias-pairwise-subtraction-roundoff.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
### Fixed

- Preserve represented low-order mass when a finite `recovered - truth` subtraction rounds before mean-bias aggregation. `mean_bias` now detects nonzero error-free subtraction roundoff and switches that case to the existing recovered-plus-negated-truth numerator, while mixed-sign mean restoration retains a second-order compensation tail through the scientific denominator and final binary64 midpoint decision. This prevents pairwise subtraction and compensation rounding from moving a representable bias by one ULP without changing the exact-subtraction fast path, overflow refusal policy, or `bias_standard_error` contract.
3 changes: 3 additions & 0 deletions CHANGELOG.d/validation-bias-same-sign-remainder-division.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
### Validation

- Preserve Neumaier compensation through the scientific count division when exact mixed-sign cancellation leaves a same-sign remainder. This prevents a represented-input mean bias from moving by one ULP because `sum + correction` was rounded before division. The public regression contract covers the sign-mirrored boundary as well.
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# Validation bias same-sign subnormal single rounding

- `validation_core::mean_bias` now rounds same-sign all-subnormal represented residuals once at the final binary64 subnormal grid when the scientific divisor is at least the surviving term count.
- The public contract fixes the three-residual case `(3 * 2^52 - 64) / 3`, which must round to subnormal units `2^52 - 21` rather than the adjacent `2^52 - 22` produced by normalize-then-rescale double rounding.
- Halfway cases use IEEE 754 round-to-nearest, ties-to-even on exact represented subnormal units; a companion fixture prevents the discarded direct-float repair from reintroducing a one-ULP halfway error.
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
### Fixed

- Preserve exact translated-residual `bias_standard_error` conditioning when several exact anchors exist. The Validation Evidence path now chooses the exact anchor with the smallest maximum translated magnitude and uses canonical represented `(high, low)` ordering only as a tie-breaker, preventing an avoidable one-ULP square/square-root drift while retaining permutation invariance and the existing exactness admission boundary.
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
### Fixed

- `validation_core::bias_standard_error` now searches exact translated-residual anchors in canonical represented `(high, low)` order instead of making the first observation authoritative. This preserves permutation invariance when one represented anchor admits exact deltas but another anchor would force the rounded-residual fallback.
- The public regression contract fixes a three-residual boundary whose low- and high-anchor permutations previously returned the adjacent lower binary64 standard error while the middle anchor returned the correctly rounded represented-input result. Sign-mirrored orderings are covered as well.
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# Validation bias standard error preserves common-high low-term dispersion

- When every rounded signed residual collapses to the same binary64 high part, evaluate the subtraction low-term dispersion with the exact translated-residual second moment whenever its anchor-relative deltas are exactly representable.
- Prevent low terms such as `[-2^-54, 0, 0]` from being re-centered on a rounded low-term mean and moving the final standard error one ULP upward.
- Retain the predecessor scaled low-term path only when exact translation cannot be established; this is a bounded represented-input repair, not a global correct-rounding claim.
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# Validation bias standard error retains distinct residual roundoff

- Preserve error-free subtraction low terms when represented bias residual high parts differ but their anchor-relative exact deltas are representable.
- Evaluate the translation-invariant second moment of those exact deltas in O(n), avoiding a rounded-residual standard error that can materially overstate uncertainty.
- Keep the predecessor rounded-residual path when exact translated deltas cannot be established without another rounding step; this change does not claim globally correctly rounded standard errors.
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
### Fixed

- `validation_core::bias_standard_error` now preserves an exactly translated two-level sample's count geometry when its standard-error factor reduces to a reciprocal power of two. For the 6/10 split of 16 observations, `SE(mean)` is exactly `|level_gap| / 8`; the represented `next_down(1.0)` gap therefore remains `0x3fbf_ffff_ffff_ffff` instead of being rounded up to `0.125` by the generic sum/square/square-root path.
- The dyadic shortcut is admitted only after exact residual translation and exact integer count verification. Other non-singleton two-level samples retain the existing translated second-moment path, and a mathematically nonzero dyadic result that falls below binary64 range still fails closed.
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
- Validation Evidence now admits the exact pair-distance identity for bounded eight-observation mean-bias standard errors when represented residuals and pairwise differences are proven exact and the reduced dyadic ratio fits the existing checked `u128` midpoint proof.
- This prevents the translated floating moment/`sqrt` fallback from moving a demonstrated exact represented-input eight-observation standard error one ULP high, while retaining the established fallback outside the bounded proof.
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
- Validation Evidence now admits the exact pair-distance identity for bounded eleven-observation mean-bias standard errors when represented residuals and pairwise differences are proven exact and the reduced dyadic ratio fits the existing checked `u128` midpoint proof.
- This prevents the translated floating moment/`sqrt` fallback from moving a demonstrated exact represented-input eleven-observation standard error one ULP low, while retaining the established fallback outside the bounded proof.
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
- Add exact-proof budget characterization for mean-bias standard error: a seventeen-observation represented-input fixture, O(n²) versus algebraically equivalent O(n) checked-`u128` numerator evidence, and the compact-dyadic `n<=2_047` worst-case arithmetic envelope.
- Add a reproducible standard-library timing harness for the buffered O(n²), allocation-free two-pass O(n²), canonical-dyadic checked O(n), and O(n)→pair-fallback kernels while keeping production exact pair-distance admission bounded at `n<=16` until release-mode CPU/allocation and applicable buyer-path p95 evidence establish a resource budget.
- Add a dependency-free two-limb wider-product O(n) reference for characterization. On the canonical odd boundary `D=2^58+1,n=65`, the narrow checked-`u128` O(n) intermediates require 129 bits and refuse, while the exact pair numerator remains 123 bits; the wider-product reference performs the cancellation without overflow and recovers the same exact pair numerator. This is evidence about intermediate width, not production admission or a new arithmetic owner.
- Extend the timing harness to emit the wider-product reference beside the existing kernels so a recorded Rust 1.98.0 release-mode run can compare CPU cost without adding a production dependency or weakening pairwise fallback.
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# Validation bias standard error avoids rounded-mean dispersion drift

- Evaluate larger-sample bias standard errors from exact anchor-relative residual deltas when those deltas are provably representable, even when the original pairwise residual subtractions were exact.
- Prevent an exactly represented residual vector such as `[1, 1-2^-52, 1]` from being turned into a different dispersion geometry by rounding its mean before centering.
- Keep the predecessor rounded-mean path when exact translated deltas cannot be established; this remains a bounded binary64 repair rather than a global correct-rounding claim.
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
- Validation Evidence now admits the exact pair-distance identity for bounded fifteen-observation mean-bias standard errors when represented residuals and pairwise differences are proven exact and the reduced dyadic ratio fits the existing checked `u128` midpoint proof.
- This prevents the translated floating moment/`sqrt` fallback from moving a demonstrated exact represented-input fifteen-observation standard error one ULP low, while retaining the established fallback outside the bounded proof.
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
- Validation Evidence now admits the exact pair-distance identity for bounded five-observation mean-bias standard errors when every represented residual and pairwise difference is proven exact and the reduced dyadic ratio fits the existing `u128` midpoint proof.
- This prevents the translated floating moment/`sqrt` fallback from moving an exact represented-input five-observation standard error by one ULP while preserving fail-closed fallback outside the bounded proof.
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
### Fixed

- Preserve the exact four-observation pair-distance standard-error proof when the GCD-reduced `u128` numerator exceeds `2^53`. The binary64 numerator conversion is now only a candidate seed; exact dyadic-square and midpoint comparisons remain authoritative for the returned rounding, so representable exact ratios do not fall back solely because the seed integer is not exactly representable as binary64.
Loading
Loading