Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
133 commits
Select commit Hold shift + click to select a range
e4e3297
Verify core::num::flt2dec memory safety (challenge #28)
MavenRain Jun 15, 2026
e104d40
Challenge #28: fix CI (autoharness debug-asserts + partition-2 OOM)
MavenRain Jun 16, 2026
9d5b396
Challenge #28: drop debug-assertions-off harnesses, revert
MavenRain Jun 22, 2026
c02f4fd
Challenge #28: make dragon stub harnesses robust to debug-assertion…
MavenRain Jun 24, 2026
6cbcdbc
Merge branch 'main' into verify-flt2dec-challenge-28
MavenRain Jul 8, 2026
8bc7ea2
Challenge #28: drop the unsound flt2dec proofs, verify format_exact_o…
MavenRain Aug 17, 2026
8a86a88
Merge remote-tracking branch 'fork/verify-flt2dec-challenge-28' into …
MavenRain Aug 17, 2026
ca4b548
Add direct flt2dec strategy harnesses with symbolic buffer lengths
MavenRain Sep 12, 2026
9739084
Use the core-compatible Kani coverage function
MavenRain Sep 12, 2026
eb897d4
Add a bounded rounding contract for flt2dec strategy proofs
MavenRain Sep 13, 2026
28c3b7e
Import core's Kani module in the rounding proofs
MavenRain Sep 13, 2026
41e1d36
Use Kissat for the direct flt2dec generator proofs
MavenRain Sep 13, 2026
102b1a2
Serialize CI verification for partition 2
MavenRain Sep 13, 2026
6c28835
Give autoharness proofs a serial execution budget
MavenRain Sep 13, 2026
1ab9926
Preserve thread labels in serial CI logs
MavenRain Sep 13, 2026
c68c227
Support serial Kani verification in PR CI
MavenRain Sep 13, 2026
bc720cc
Partition floating-point generator proofs by exponent
MavenRain Sep 13, 2026
e9c5e45
Report failed and timed-out Kani proofs promptly
MavenRain Sep 13, 2026
b396b58
ci: trust the existing CBMC tap on macOS runners
MavenRain Sep 13, 2026
d66a5d7
Add a storage contract for bounded Dragon division
MavenRain Sep 13, 2026
d989659
Avoid panics in the division contract's old expression
MavenRain Sep 13, 2026
a1b733a
Check flt2dec proof families independently in CI
MavenRain Sep 13, 2026
cc01efe
Reduce symbolic iteration in flt2dec contract predicates
MavenRain Sep 13, 2026
5ff6a97
Probe flt2dec verification with a fixed binary exponent
MavenRain Sep 13, 2026
8ece960
Decompose the flt2dec bigint division contract by limb
MavenRain Sep 13, 2026
3ebd8e7
Run focused flt2dec proofs with CVC5 and preserve contract diagnostics
MavenRain Sep 13, 2026
23192a4
Avoid recursive substitution in the bigint division contract proof
MavenRain Sep 13, 2026
40e3b33
Retain harness solvers after the CVC5 translation failure
MavenRain Sep 13, 2026
058cfa7
Scope Dragon unwind limits to the float input family
MavenRain Sep 13, 2026
39e2996
Give f32 and f64 generator proofs independent CI jobs
MavenRain Sep 13, 2026
e7bd2d5
Verify the bigint limb loop independently of power-of-ten division
MavenRain Sep 13, 2026
2c1cad5
Match the bigint division adapter return type
MavenRain Sep 13, 2026
dc8fc03
Limit bigint division contracts to their writable limbs
MavenRain Sep 13, 2026
c5d48b4
Keep bounded generator lengths narrow during symbolic execution
MavenRain Sep 13, 2026
b3072db
Prove equivalence of constant-index bigint comparison models
MavenRain Sep 13, 2026
26975f9
Use Grisu exact mode's error counter to bound loop unwinding
MavenRain Sep 13, 2026
67718cc
Use Kani's default symbolic object capacity
MavenRain Sep 13, 2026
4e233ff
Keep bigint comparison models linear in their limb count
MavenRain Sep 13, 2026
d701b3d
Select symbolic object capacity for each CI proof kind
MavenRain Sep 13, 2026
94f5b7c
Match bigint comparison models to the real active prefixes
MavenRain Sep 13, 2026
f08eb0d
Compose Grisu exact proofs with a final-rounding contract
MavenRain Sep 13, 2026
98b3aef
Keep unused bigint size bits concrete in the equivalence proof
MavenRain Sep 13, 2026
5c22322
Keep the Grisu rounding contract's write set empty
MavenRain Sep 13, 2026
9b887fd
Check bigint model equivalence without a function write frame
MavenRain Sep 13, 2026
04a312c
Compose Grisu shortest with an independent final-rounding proof
MavenRain Sep 13, 2026
5a14fbb
Reduce rounding contract argument tracking
MavenRain Sep 13, 2026
1f6ea34
Compare CBMC encodings in focused flt2dec probes
MavenRain Sep 13, 2026
98e050b
Use an additive shortest-rounding stopping predicate
MavenRain Sep 13, 2026
946da21
Probe a smaller object table for Grisu exact
MavenRain Sep 13, 2026
e5cfcf6
Reduce exact-rounding contract call state
MavenRain Sep 13, 2026
81de91a
Restore sufficient object capacity for the exact Grisu probe
MavenRain Sep 13, 2026
431e679
Add exact bit-scan models with independent equivalence proof
MavenRain Sep 13, 2026
49acde4
Share Grisu exact rounding across generator exits
MavenRain Sep 13, 2026
0bbe551
Share Grisu shortest rounding across generator exits
MavenRain Sep 14, 2026
5a571b3
Add an exact estimator model with independent equivalence proof
MavenRain Sep 14, 2026
df8bbbb
Use scalar inputs for the shortest-rounding contract
MavenRain Sep 14, 2026
c108d77
Split estimator equivalence and bound CI proof batches
MavenRain Sep 14, 2026
d8c4abe
Give generator proofs more time within bounded CI batches
MavenRain Sep 14, 2026
c9e6a24
Expose checked constant scaling in Dragon diagnostic proofs
MavenRain Sep 14, 2026
ee24d41
Expose checked exponent bits in Dragon proofs
MavenRain Sep 14, 2026
c4a9310
Assign flt2dec proofs once per operating system
MavenRain Sep 14, 2026
6aaa21e
Merge main to restore PR CI
MavenRain Sep 14, 2026
5a269ad
Expose checked bigint counts in Dragon diagnostics
MavenRain Sep 14, 2026
559e45f
Check constant cached-power selection in Grisu probes
MavenRain Sep 14, 2026
1dd861f
Check bigint arithmetic models in Dragon diagnostics
MavenRain Sep 14, 2026
0e3ea78
Allow composed Kani stubs to expand in core
MavenRain Sep 14, 2026
6915963
Give Grisu shortest proofs more time in smaller CI batches
MavenRain Sep 14, 2026
4fb7f47
Split multiplication equivalence by exhaustive storage sizes
MavenRain Sep 14, 2026
7288012
Expose literal decimal divisors in Grisu shortest proofs
MavenRain Sep 14, 2026
b9e2db1
Use Z3 for exhaustive multiplication equivalence cases
MavenRain Sep 14, 2026
5653b8a
Use Z3 for full-range Grisu shortest proofs
MavenRain Sep 14, 2026
971b426
Use SAT arithmetic refinement for remaining flt2dec proofs
MavenRain Sep 14, 2026
87c3397
Apply arithmetic refinement to both Grisu float kinds
MavenRain Sep 14, 2026
50d1b01
Compose an exact limb multiplication contract in Dragon proofs
MavenRain Sep 14, 2026
1e37fdd
Test datatype-free SMT encoding for Grisu shortest probes
MavenRain Sep 14, 2026
2a9e0b9
Use Z3 for composed multiplication proofs
MavenRain Sep 14, 2026
48116d9
Separate Grisu shortest scaling from digit-loop proofs
MavenRain Sep 14, 2026
4bd2580
Share scalar multiplication expressions in equivalence proofs
MavenRain Sep 14, 2026
f926a7a
Check packed multiplication results before individual limbs
MavenRain Sep 14, 2026
2b15b71
Strengthen Grisu interval facts and compose proved scalar models
MavenRain Sep 14, 2026
7cc96c8
Partition scaling proofs across the full normalized exponent range
MavenRain Sep 14, 2026
f60b933
Reuse checked limb counts in symbolic storage predicates
MavenRain Sep 14, 2026
368085f
Expose checked cached-power ranges in scaling proofs
MavenRain Sep 14, 2026
64147ad
Retry failed dependency downloads in GitHub CI
MavenRain Sep 14, 2026
3572234
Merge main and adapt flt2dec proofs to num::imp
MavenRain Oct 12, 2026
8208ba7
Fix remaining bigint instrumentation paths after num rename
MavenRain Oct 12, 2026
0e23b90
Pin Kani with approved AArch64 SIMD codegen fixes
MavenRain Oct 12, 2026
903a134
Use concrete bigint and primitive imports for Kani stub resolution
MavenRain Oct 12, 2026
8c17609
Select literal primitive stub paths for each target width
MavenRain Oct 12, 2026
3d54ac2
Support quantified flat SMT and avoid duplicate flt2dec autoharness runs
MavenRain Oct 13, 2026
75fdf92
Generate JSON inventory before selecting autoharness manual proofs
MavenRain Oct 13, 2026
46a748f
Use native limb bounds for fixed-exponent probes
MavenRain Oct 13, 2026
366424f
Forward list options when generating harness inventories
MavenRain Oct 13, 2026
99526ab
Expose checked formatter bounds in bigint shift loops
MavenRain Oct 13, 2026
91ececf
Fix report parsing for duplicate and instantiated harness names
MavenRain Oct 13, 2026
f1f34a1
Backport the CBMC flat arithmetic encoding fix for CI
MavenRain Oct 13, 2026
7f49a2e
Avoid unnecessary CBMC diagnostic traces in formatter proofs
MavenRain Oct 13, 2026
68cd40c
Retry transient Homebrew CBMC tap fetch failures
MavenRain Oct 13, 2026
d88dee4
Rebuild Kani when its packaged runtime is incomplete
MavenRain Oct 13, 2026
6be9aba
Decompose formatter verification into checked helper proofs
MavenRain Oct 13, 2026
40d00b3
Avoid benchmark downloads when bootstrapping Kani
MavenRain Oct 13, 2026
77c880e
Compose Grisu scaling proofs from verified arithmetic contracts
MavenRain Oct 14, 2026
84cfdcf
Retry transient dependency installer failures in CI
MavenRain Oct 14, 2026
00053c6
Restore complete scaling coverage and validated CVC5 encoding
MavenRain Oct 14, 2026
666f36f
Compose exact Grisu proofs with verified normalized multiplication
MavenRain Oct 14, 2026
5bb6ac7
Verify Grisu digit loops with explicit invariants and runtime regression
MavenRain Oct 14, 2026
273d92b
Preserve the scaling suffix in the Grisu digit invariant
MavenRain Oct 14, 2026
92827b2
Check Grisu rounding obligations individually
MavenRain Oct 14, 2026
775c7ca
Avoid unused CBMC loop frame inference and test enforcement
MavenRain Oct 14, 2026
43fd91b
Include generated for-loop bindings in explicit Kani frames
MavenRain Oct 14, 2026
509c067
Verify Dragon exact digit generation with an explicit loop frame
MavenRain Oct 14, 2026
6041019
Track Dragon shortest comparison scratch storage in the loop frame
MavenRain Oct 14, 2026
d5512d7
Expose the Dragon proof buffer bound to its parent helpers
MavenRain Oct 14, 2026
72002d0
Prove Grisu fractional updates with an explicit counter
MavenRain Oct 14, 2026
c4d256f
Check cached multiplication with separate operand branches
MavenRain Oct 14, 2026
21fffb7
Keep explicitly selected proof runs separate from full CI
MavenRain Oct 14, 2026
fc380f3
Allow platform selection for explicit manual proof runs
MavenRain Oct 14, 2026
b9974fa
Add memory headroom and sampling for cached multiplication proofs
MavenRain Oct 14, 2026
7574f81
Keep cached multiplication helpers separate during loop analysis
MavenRain Oct 14, 2026
145ef7d
Partition cached multiplication equivalence by every accepted size
MavenRain Oct 14, 2026
46e4328
Use CVC5 for the five unresolved Grisu shortest partitions
MavenRain Oct 14, 2026
928a05c
Run structural multiplication equivalence with the native solver
MavenRain Oct 14, 2026
a845f66
Keep multiplication model indices aligned with the native computation
MavenRain Oct 15, 2026
4b387c3
Add explicitly scoped manual Grisu loop property diagnostics
MavenRain Oct 15, 2026
017c46a
Give cached multiplication proofs their own CI groups
MavenRain Oct 15, 2026
a9e87fb
Add flt2dec proof diagnostics for Dragon and cached proofs
MavenRain Oct 15, 2026
f07e433
Use kissat for cached proofs and add manual flt2dec overrides
MavenRain Oct 15, 2026
7d0e91f
Update the cvc5 coverage test for the f64_01 route
MavenRain Oct 15, 2026
43c389b
Split the flt2dec proofs into two CI matrix jobs
MavenRain Oct 15, 2026
a40b3a4
Prove the hard Grisu shortest partitions in exponent slices
MavenRain Oct 15, 2026
66d1a14
Prove the cached products in lockstep with the model
MavenRain Oct 15, 2026
a56f7fa
Log the cached product steps per digit position
MavenRain Oct 16, 2026
b82c947
Add a manual probe for the integral digit loop step
MavenRain Oct 16, 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
367 changes: 342 additions & 25 deletions .github/workflows/kani.yml

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ Session.vim
/book/
/build/
/kani_build/
/cbmc_build/
/target
library/target
scripts/autoharness_analyzer/target/
Expand Down
2 changes: 2 additions & 0 deletions library/core/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,8 @@
#![no_core]
#![rustc_coherence_is_core]
#![rustc_preserve_ub_checks]
// Composed Kani stubs require more macro expansion depth.
#![cfg_attr(kani, recursion_limit = "512")]
//
// Lints:
#![deny(rust_2021_incompatible_or_patterns)]
Expand Down
Loading
Loading