blog(one-ulp): "One ulp of doubt" — the f32/f64 verification story - #136
Merged
Conversation
A colleague's question — 32-bit floats or 64? — traced through three tiers of assurance on the Falcon flight-math kernels: a CI gate enforcing f32 discipline (Kani catching a wrong covariance safe-value), an exhaustive 2.2e9-input accuracy bound (finding what the 4M sample hid near zero), and a machine-checked Gappa→Flocq→coqc rounding proof (tight at 2^-24, non-vacuous). Kept honest about what is NOT proven (the Coq-Interval approximation layer, the reduction cancellation) and the notch fragility the kernel merely revealed. Draft (draft = true, ready = false) — held from autopublish for review. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01HvusAXYbHLyv3uTzfBcMbG
avrabe
enabled auto-merge (squash)
July 22, 2026 11:22
avrabe
disabled auto-merge
July 22, 2026 13:20
avrabe
enabled auto-merge
July 22, 2026 13:21
avrabe
disabled auto-merge
July 22, 2026 13:21
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds
content/blog/2026-07-22-one-ulp-of-doubt.md— an engineering-notes post on the Falcon floating-point work (falcon-v1.123 → v1.127).The story: a colleague asks whether the flight-control floats should be 32- or 64-bit; the honest answer is that 32-bit is the requirement (the M4's FPv4-SP has no f64 hardware — matching PX4/ArduPilot), but it was tribal knowledge. Three tiers of assurance follow, each catching what the last missed:
+∞escaped a naive check.coqc, tight at2⁻²⁴, non-vacuous (rejects2⁻²⁵), a required gate.Keeps the section most write-ups omit: what we did not prove (the Coq-Interval approximation layer, the reduction cancellation) and the notch fragility the kernel merely revealed — because that honesty is the point.
+++TOML frontmatter,{% insight() %}opener,{% note() %}callouts,##headings for the auto-TOC.draft = true,ready = false— private draft, held from autopublish; flip when you want it live.zola buildpasses locally; the only broken external linkszola checkreports are pre-existing in other posts, none in this one.origin/mainso no other in-progress branch was touched.🤖 Generated with Claude Code
https://claude.ai/code/session_01HvusAXYbHLyv3uTzfBcMbG