Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1005 commits
Select commit Hold shift + click to select a range
c6fdb5b
fix(prover): re-pin the WHIR transcript to include the prepared openi…
MauroToscano Sep 18, 2026
8c84da7
test(prover): reach the pin's shape deriver from a laptop
MauroToscano Sep 18, 2026
2dcb05a
style(lfm,stark): rustfmt the bus leg, and the three clippy errors ca…
MauroToscano Sep 18, 2026
50e0e36
test(prover): the residency counts print first, and the one-commit gu…
MauroToscano Sep 18, 2026
35e6ead
feat(stark): read IrShape's public selectors without building their t…
MauroToscano Sep 18, 2026
0b4fc95
feat(lfm): the row selector, with the host's identity steps left out
MauroToscano Sep 18, 2026
a96a287
feat(crypto,prover): count misaligned absorbs after a statement, not …
MauroToscano Sep 18, 2026
214d7ad
test(prover): measure the hash agreement level 0's refusal rests on
MauroToscano Sep 18, 2026
f1f0328
test(prover): the residency verdict completes before any commit model…
MauroToscano Sep 18, 2026
c1e2b1c
merge: whir/decode-group at 214d7ad3 (W1-B, the register fix and the …
MauroToscano Sep 18, 2026
295cccc
merge: whir/rpx-align-counter at a96a2871 (misaligned absorbs after a…
MauroToscano Sep 18, 2026
5f92f23
feat(lfm): the per-table verify, with its challenges derived rather t…
MauroToscano Sep 18, 2026
caad8f3
test(lfm): the per-table verify's tamper arm, in three halves
MauroToscano Sep 18, 2026
25613dd
style(lfm): rustfmt the table leg, and the six clippy errors cargo te…
MauroToscano Sep 18, 2026
8ac8144
fix(prover): derive the pinned commit total from the bundle, and clos…
MauroToscano Sep 18, 2026
7ccfa98
merge: whir/lfm at 295ccccc (W1-B, the register fix, the counter) int…
MauroToscano Sep 18, 2026
6aadee3
test(lfm): the register red flag is closed, so it is deleted rather t…
MauroToscano Sep 18, 2026
bd45444
test(prover): make the bus instrument return item 5's whole per-table…
MauroToscano Sep 18, 2026
27bcaf1
test(lfm): run the chain's F1 at the PRODUCTION shape, and count its …
MauroToscano Sep 18, 2026
b38664d
feat(lfm): seam 1 — the level-0 driver's hash agreement, verified rat…
MauroToscano Sep 18, 2026
83b775c
style(lfm): rustfmt the production-shape chain test
MauroToscano Sep 18, 2026
febeab6
docs(lfm): record seam 1's mutation ratio, and that the posture note …
MauroToscano Sep 18, 2026
bebf98b
merge: whir/decode-group at 8ac8144b (the residency reorder and the d…
MauroToscano Sep 18, 2026
e958c45
feat(lfm): emit stacked_eval::verify, with the transcript threaded th…
MauroToscano Sep 18, 2026
7b5ffac
merge: whir/lfm at 295ccccc (W1-B, the register fix, the derived pin)…
MauroToscano Sep 18, 2026
f911b84
fix(lfm): supply `settled_out_of_band` where the merge widened multil…
MauroToscano Sep 18, 2026
808e328
merge: whir/lfm at bebf98b9 (the residency reorder and the derived co…
MauroToscano Sep 18, 2026
43f113b
perf(lfm): the level-0 driver takes DECODE's prepared commitment inst…
MauroToscano Sep 18, 2026
b81da59
docs(lfm): the prepared derivation's measured cost, and why it is not…
MauroToscano Sep 18, 2026
78cea5d
feat(lfm): emit the epoch and global continuation statements
MauroToscano Sep 18, 2026
cf1bb98
docs(lfm): record the statement leg's non-mutation
MauroToscano Sep 18, 2026
ade570a
test(lfm): the level-0 driver walks a real block bundle, from one der…
MauroToscano Sep 18, 2026
93a5ce6
merge: whir/lfm at bebf98b9 (the residency reorder and the derived co…
MauroToscano Sep 18, 2026
9254000
refactor(lfm): the level-0 driver leaves the test module, so a produc…
MauroToscano Sep 18, 2026
ee9a76c
feat(prover,lfm): one derivation of an epoch's AIR set, for the verif…
MauroToscano Sep 18, 2026
3b2907f
refactor(lfm): move one chain's arena walk out of the test module
MauroToscano Sep 18, 2026
d3e6598
feat(lfm): the preprocessed columns no closed form covers, with a cap
MauroToscano Sep 18, 2026
c757823
feat(lfm): the epoch verify's cost form, and the production-shape rec…
MauroToscano Sep 18, 2026
a3d7d92
test(lfm): the restated-counts tamper, where the shared AIR set reach…
MauroToscano Sep 18, 2026
80ed365
feat(lfm): the epoch verify's roots block, with the derived root as p…
MauroToscano Sep 18, 2026
7c22e01
feat(lfm): the epoch's closure, and the seam a silent epoch cannot ex…
MauroToscano Sep 18, 2026
ee25291
style(lfm): group the closure fixture's seed literal as clippy asks
MauroToscano Sep 18, 2026
d1595d6
merge(whir): the level-0 driver into the emitter branch
MauroToscano Sep 18, 2026
0e4f461
refactor(lfm): one interior for both production trees
MauroToscano Sep 18, 2026
81b9425
fix(lfm): an empty constraint DAG interns a zero, it does not emit a row
MauroToscano Sep 18, 2026
82520fe
feat(lfm): the epoch verify's two walks
MauroToscano Sep 18, 2026
a6adece
fix(lfm): two lint errors the walk's gates added
MauroToscano Sep 18, 2026
f94ba2e
feat(lfm): the assembled epoch verify, executing on a real epoch
MauroToscano Sep 18, 2026
4df91a0
merge(whir): V1's assembled epoch verify into the level-0 branch
MauroToscano Sep 18, 2026
c6c7310
test(bench): bs3 prints each table's constant pool, and the epoch's o…
MauroToscano Sep 18, 2026
b9ac577
feat(lfm): the epoch wrap publishes the aggregation set
MauroToscano Sep 18, 2026
313b4b0
merge(whir): the epoch wrap's aggregation publish set into the level-…
MauroToscano Sep 18, 2026
d200b59
test(lfm): the tamper arm, three values at three legs
MauroToscano Sep 18, 2026
bad7cac
feat(lfm): the WHIR production tree, and its card-free fixture arm
MauroToscano Sep 18, 2026
4531a94
docs(lfm): the tamper arm names what BINDS a value, not what refuses it
MauroToscano Sep 18, 2026
a5f0693
feat(lfm): the OFFSET ramp in closed form, for the cross-epoch proof
MauroToscano Sep 18, 2026
f5db9d1
test(lfm): size the cross-epoch INIT opening's two shapes before one …
MauroToscano Sep 18, 2026
09fb030
refactor(multilinear): one derivation of the cross-epoch AIR set
MauroToscano Sep 18, 2026
462f484
feat(lfm): the WHIR cross-epoch driver
MauroToscano Sep 18, 2026
0de1f7c
test(lfm): reach the cross-epoch harvest's verdict, not only its error
MauroToscano Sep 19, 2026
2f07293
merge: the OFFSET ramp and the INIT sizing into the cross-epoch lineage
MauroToscano Sep 19, 2026
11b9028
feat(lfm): the cross-epoch program — the route table, the genesis leg…
MauroToscano Sep 19, 2026
511ca0f
feat(lfm): the genesis census, which the sparse cap is sized against
MauroToscano Sep 19, 2026
8a7ed77
test(lfm): the published bookend roots, and the global pad at every r…
MauroToscano Sep 19, 2026
3e95145
test(lfm): the sparse genesis leg, gated against the fold it replaces
MauroToscano Sep 19, 2026
5fa2672
test(lfm): the box arm for the cross-epoch program, and the census it…
MauroToscano Sep 19, 2026
508b0e6
refactor(lfm): the route decision moves off the driver onto the cross…
MauroToscano Sep 19, 2026
723e738
refactor(multilinear): the cross-epoch verifier takes its hash from t…
MauroToscano Sep 19, 2026
c242465
feat(lfm): the cross-epoch driver takes its hash, and publishes its s…
MauroToscano Sep 19, 2026
1f7a0cd
fix(tests): guard the identity test on the nonces its assertion can see
MauroToscano Sep 19, 2026
892c7d1
Merge main (#977 skip-empty-tables, #987 keccak-hash counts) into whi…
MauroToscano Sep 19, 2026
28cc920
fix(lfm): the refusal arm restates its input after the borrow it read…
MauroToscano Sep 19, 2026
d446b49
fix(lfm): the cross-epoch execution arms name the posture they need
MauroToscano Sep 19, 2026
69acab6
docs(lfm): the route table says which fixture gates which arm
MauroToscano Sep 19, 2026
72d5fa9
test(lfm): the published-set arm runs where a permutation is visible
MauroToscano Sep 19, 2026
dd3a77c
test(lfm): the census arm checks a relation that can be false
MauroToscano Sep 19, 2026
60d7903
merge: the cross-epoch driver's hash parameter and its public surface
MauroToscano Sep 19, 2026
e3f43c6
feat(lfm): the Newton pairs get a values form, and the pool closes
MauroToscano Sep 19, 2026
e9d9936
merge: V1j's cross-epoch builder at the W1g public surface
MauroToscano Sep 19, 2026
f4a2eed
test(lfm): the epoch program's Newton pool, measured for the first time
MauroToscano Sep 19, 2026
db5ad5e
feat(lfm): the WHIR global stage and the block-artifact root in the t…
MauroToscano Sep 19, 2026
5b4a3d3
feat(lfm): the coset fold's constants get a values form, and the pool…
MauroToscano Sep 19, 2026
70aade4
feat(stark): a prepared opening may span several tables and settle a …
MauroToscano Sep 19, 2026
9ea85f3
feat(prover): the genesis-stack routing rule, and the private-page fi…
MauroToscano Sep 19, 2026
62e03eb
refactor(prover): prove_global takes the hash from its caller, so the…
MauroToscano Sep 19, 2026
54d50e9
feat(prover): the cross-epoch proof carries a prepared opening of the…
MauroToscano Sep 19, 2026
fbb9780
test(prover): the interned genesis root's provenance, and the thresho…
MauroToscano Sep 19, 2026
d0f3950
test(prover): the block's dense pages, read off the ELF instead of co…
MauroToscano Sep 19, 2026
dfb25ae
refactor(stark): the prepared opening takes a table list, and the pre…
MauroToscano Sep 19, 2026
5a9846b
feat(prover): the genesis-stack split moves into continuation, and th…
MauroToscano Sep 19, 2026
a2032d4
fix(prover): a malformed cross-epoch split is an error, and the page …
MauroToscano Sep 19, 2026
6007520
test(lfm): the density threshold and the sparse-leg cap must overlap
MauroToscano Sep 19, 2026
cdd944d
merge: main's skip-empty-tables and keccak-hash counts into the WHIR …
MauroToscano Sep 19, 2026
fb836d9
test(lfm): an unnamed pool constant names its own emitter
MauroToscano Sep 19, 2026
6c78fcd
test(lfm): the pool diagnostic reaches the caller, not just the leg
MauroToscano Sep 19, 2026
27fbd3a
test(prover): rebuild the genesis stack's provenance by column, not b…
MauroToscano Sep 19, 2026
0687eb2
feat(lfm): the grind's constants get a values form, and the pool closes
MauroToscano Sep 19, 2026
8f1f7f4
docs(lfm): the page list is not canonicalised, and the emitter never …
MauroToscano Sep 19, 2026
cdd5d1b
docs(lfm): finish the sentence the last commit cut in half
MauroToscano Sep 19, 2026
17c3a39
feat(prover): route the genesis stack by a two-part rule, not a per-p…
MauroToscano Sep 19, 2026
31afd95
merge: V1j's constant-pool forms and the canonicality correction
MauroToscano Sep 19, 2026
9f9bfee
refactor(prover): the genesis marginal is a measured literal, not a f…
MauroToscano Sep 19, 2026
fb25f8a
fix(prover): the genesis marginal literal is 103, what the rule charg…
MauroToscano Sep 19, 2026
dd2da70
style(stark): name the prepared opening's claim pair
MauroToscano Sep 19, 2026
52c6cc1
fix(prover): the genesis marginal is a spread, and the literal is its…
MauroToscano Sep 19, 2026
8a3f549
fix(prover): five clippy errors, and two assertions that were about a…
MauroToscano Sep 19, 2026
644b7de
fix(prover): escape the braces in the band assertion's message
MauroToscano Sep 19, 2026
84a02b8
merge: W1j's genesis-stack routing and the prepared opening's plumbing
MauroToscano Sep 19, 2026
5a37157
feat(prover): the genesis marginal is a form read at the run's own br…
MauroToscano Sep 19, 2026
fc1c91f
fix(prover): the refused candidate's savings are derived, not restated
MauroToscano Sep 19, 2026
a8c412c
test(lfm): the block arm prints the routing, not just the program's size
MauroToscano Sep 19, 2026
6b252c7
fix(prover): the shared chain's savings are derived, not restated
MauroToscano Sep 19, 2026
d82bb74
feat(prover): the WHIR base's stage breakdown, under the knob that al…
MauroToscano Sep 19, 2026
830f9e2
test(lfm): the base split is read back in the FIXTURE arm too, not on…
MauroToscano Sep 19, 2026
7b0f260
feat(multilinear): the WHIR chain's round, in six slots that partitio…
MauroToscano Sep 19, 2026
5d0175c
test(bench): derive the dense-genesis stack's terms, and put the tabl…
MauroToscano Sep 19, 2026
d0748f0
test(bench): close the pin lane's own gate — then_some, and the tenth…
MauroToscano Sep 19, 2026
da50084
feat(multilinear): the round loop's own wall, and two named remainders
MauroToscano Sep 19, 2026
149b32c
fix(multilinear): arm E regains the bound that sees a missing slot
MauroToscano Sep 19, 2026
c00342c
Merge whir/lfm-v4-pins: the pins re-derived for the dense-genesis sta…
MauroToscano Sep 19, 2026
2ba8eed
feat(math-cuda): the grind's scan factor as a read-once knob, and wha…
MauroToscano Sep 19, 2026
45388b1
feat(math-cuda): the grind's launch geometry as knobs, and the fill r…
MauroToscano Sep 19, 2026
41a2457
test(bench): the order control, and the split that can falsify a mech…
MauroToscano Sep 19, 2026
5125a6f
feat(multilinear): the query openings in four slots, and a count that…
MauroToscano Sep 19, 2026
c766c23
test(bench): read the noise floor by name, and show the tail that mov…
MauroToscano Sep 19, 2026
65327b8
test(bench): sweep the grind's scan factor UPWARD, where the loop bou…
MauroToscano Sep 19, 2026
d8b7ca6
test(math-cuda): count the permutations a grind launch actually executes
MauroToscano Sep 19, 2026
2e6b887
perf(math-cuda): keep a commitment's leaf layer, not its tree
MauroToscano Sep 19, 2026
b713aed
fix(bench): the ideal-work model double-counted the blocks a search m…
MauroToscano Sep 19, 2026
ccf0551
test(math-cuda): the process-wide counters become an accounting identity
MauroToscano Sep 19, 2026
90a38ec
fix(test): the host KAT punned its result type, and LP64 made it matter
MauroToscano Sep 20, 2026
febb533
test(math-cuda): sample the group guard at one pool state, not two
MauroToscano Sep 20, 2026
354bc69
test(math-cuda): print the group guard's ledger on the honest path too
MauroToscano Sep 20, 2026
bc6ce9e
feat(math-cuda): count argue-surface device fallbacks (sumcheck/gkr/c…
MauroToscano Sep 20, 2026
d508faf
feat(prover): print commit + device fallbacks at the WHIR tree's whol…
MauroToscano Sep 20, 2026
9cd62d7
feat(math-cuda): live-retained-bytes footprint + be.reserved high-wat…
MauroToscano Sep 20, 2026
faf8123
feat(math-cuda): evictable leaf-layer retention — argue reclaims spar…
MauroToscano Sep 20, 2026
27be22c
test(math-cuda): grind poll k-sweep — a staggered poll_period on the …
MauroToscano Sep 20, 2026
8348542
test(math-cuda): round-3 occupancy discriminator — a -maxrregcount re…
MauroToscano Sep 20, 2026
d27fbce
test(math-cuda): round-3 argue discriminator — per-surface reserved-b…
MauroToscano Sep 20, 2026
bdd89b4
test(math-cuda): block-scale sumcheck ncu micro-bench for the round-3…
MauroToscano Sep 20, 2026
ef77f69
test(math-cuda): argue device-busy sizing timer (round-3 idle-fractio…
MauroToscano Sep 20, 2026
7f319cc
feat(whir): env-gated depth-1 fraction-tree prefetch (LFM_WHIR_PREFETCH)
MauroToscano Sep 21, 2026
34b180d
test(lfm): tree-phase device-occupancy probe (round-3 tree/wrap discr…
MauroToscano Sep 21, 2026
fbf2624
test(lfm): strip the tree probe to what the free read did not already…
MauroToscano Sep 21, 2026
8cedf2e
fix(lfm,tests): the pins the main-sync port left behind, each against…
MauroToscano Sep 21, 2026
788f36a
test(prover): the multilinear table-set gates name the tables they ar…
MauroToscano Sep 21, 2026
865c689
style(tests): rustfmt the accelerator-list chain
MauroToscano Sep 21, 2026
26d7e44
feat(lfm): the WHIR driver accepts LFM_TREE_TOP_OVERLAP (the global c…
MauroToscano Sep 21, 2026
413b3a3
test(prover): the table-set gates pin the SET, and one of them pins a…
MauroToscano Sep 21, 2026
d9611cd
fix(lint): needless_range_loop in rpx_grind_counted's cross-k identic…
MauroToscano Sep 21, 2026
3218346
fix(tests): three more the main-sync port left, and a precompile test…
MauroToscano Sep 21, 2026
c8c7c03
test(lfm): the tenant socket census measures before it asserts, and n…
MauroToscano Sep 21, 2026
05f0500
fix(lfm): the tenant socket assertion tied a counterfactual to the li…
MauroToscano Sep 21, 2026
b420ee9
fix(test): the host KAT punned its result type, and LP64 made it matter
MauroToscano Sep 20, 2026
4faa158
Merge whir/lfm-pins-rebless: the eleven pins the main-sync port left …
MauroToscano Sep 22, 2026
228db09
Merge whir/lfm-o5-retention: round 2, evictable leaf-layer retention …
MauroToscano Sep 22, 2026
755174f
Merge whir/lfm-o7-tree: round 3's TOP_OVERLAP lever and the round-3 i…
MauroToscano Sep 22, 2026
f80c590
perf(lfm): the WHIR tree's defaults are the measured configuration
MauroToscano Sep 22, 2026
5d0b0a4
Merge whir/recursion-rpx-defaults: the WHIR tree's defaults are the m…
MauroToscano Sep 22, 2026
ab7208f
feat(crypto): Merkle cap primitive and the cap-height policy
MauroToscano Sep 24, 2026
f82e42b
fix(stark): require exact authentication-path lengths in the verifier
MauroToscano Sep 24, 2026
77ea1ab
feat(prover): ZfFormat, the one proof-format config, and its option f…
MauroToscano Sep 24, 2026
72304a5
feat(stark/fri): the verifier-side FRI fold-schedule DP and a schedul…
MauroToscano Sep 24, 2026
db7c054
feat(multilinear): the WHIR first-fold schedule (W2), its Q rule and …
MauroToscano Sep 24, 2026
dc2d872
fix(crypto): the cap review fixes on the primitive (REVIEW-CAP S5, M1)
MauroToscano Sep 24, 2026
177ec2c
feat(prover): the statement binds the WHIR fold schedule; reused comm…
MauroToscano Sep 24, 2026
92ba48e
feat(prover): LAMBDA_VM_ZF_WHIR_FOLDS reaches the WHIR base config
MauroToscano Sep 24, 2026
50ec501
feat(stark/fri): cost-law schedule objective, options-driven FRI layo…
MauroToscano Sep 24, 2026
321e486
test(math-cuda): device commit and fold parity at k = 6
MauroToscano Sep 24, 2026
299f379
feat(multilinear): the Merkle cap on WHIR chains, host prover and ver…
MauroToscano Sep 24, 2026
93447d9
test(lfm): the in-guest WHIR verifier at first folds of 5 and 6
MauroToscano Sep 24, 2026
4d67789
feat(stark): Merkle caps on the host path (C3, design/CAP.md section 4)
MauroToscano Sep 24, 2026
f7dee29
test(math-cuda,multilinear): device parity for the WHIR Merkle cap (W…
MauroToscano Sep 24, 2026
2d1c562
feat(multilinear): WHIR_FOLDS_IMPLEMENTED = true
MauroToscano Sep 24, 2026
88db27b
test(stark,prover): default-format golden proofs (H0)
MauroToscano Sep 24, 2026
ac73346
test(prover): the fold lever's selectability as a const assertion (cl…
MauroToscano Sep 24, 2026
1293f5a
feat(stark,math-cuda): Merkle caps off device-resident trees (C4)
MauroToscano Sep 24, 2026
e6ea359
test(prover): a real VM proof under the process cap policy
MauroToscano Sep 24, 2026
713e18b
feat(lfm): the WHIR Merkle cap in the in-guest chain verifier and its…
MauroToscano Sep 24, 2026
d281c3b
feat(multilinear): W1 is implemented; LAMBDA_VM_ZF_WHIR_CAP is select…
MauroToscano Sep 24, 2026
5a61661
feat(stark/fri): S3 group-leaf FRI layers on the CPU prover and host …
MauroToscano Sep 24, 2026
1696bbb
test(stark,prover): the S3 test vectors, and a VM proof at fri = dp (H3)
MauroToscano Sep 24, 2026
b04e895
feat(stark): FRI_MODE_IMPLEMENTED = true (S3 on the host CPU path)
MauroToscano Sep 24, 2026
6092c77
test(prover): the production format sites prove at the process format
MauroToscano Sep 24, 2026
59cd50a
Merge zf/cap-stark wave A @ 77ea1ab89: the Merkle cap primitive, exac…
MauroToscano Sep 24, 2026
c08491e
Merge I-CAP-S wave B @ e6ea35953 into the candidate (R1, C3, C4, T)
MauroToscano Sep 24, 2026
49546d6
Merge I-CAP-W @ d281c3b86 into the candidate (C6, C7, C8, W1 flag)
MauroToscano Sep 24, 2026
6d0dade
Merge I-WHIR-F @ ac73346b4 into the candidate (W2: first5 / first6)
MauroToscano Sep 24, 2026
f985944
Merge I-FRI-H @ 6092c77dd into the candidate (H1, H1b, H0, H2, H3)
MauroToscano Sep 24, 2026
1a93632
feat(stark): Merkle caps on group-leaf FRI layers (cap x fri=dp)
MauroToscano Sep 24, 2026
3a9512c
test(stark,prover): S3 proof vectors with a Merkle cap at Q = 20 (F9)
MauroToscano Sep 24, 2026
dc64ae3
fix(stark): drop the group-path verifier's now-unused proof parameter
MauroToscano Sep 24, 2026
942201d
feat(math-cuda): S3 group-leaf FRI layers on the device
MauroToscano Sep 24, 2026
67890ae
feat(stark): the device FRI arms run the S3 group encoding
MauroToscano Sep 24, 2026
d9d6769
test(prover): S3 device parity under RPX and a VM dp proof on the device
MauroToscano Sep 24, 2026
f004a5a
feat(stark): S2 one-row openings with a committed FRI input on the CP…
MauroToscano Sep 24, 2026
c8ffb4b
refactor(prover): one in-guest Merkle cap gadget for the WHIR and STA…
MauroToscano Sep 24, 2026
87176ab
feat(prover): Merkle caps in the in-guest STARK verifier (C5)
MauroToscano Sep 24, 2026
4510844
feat(prover): S3 group-leaf FRI layers in the in-guest verifier (G1, G2)
MauroToscano Sep 24, 2026
59639d3
docs(stark): the Merkle cap and fri=dp are in the in-guest verifier
MauroToscano Sep 24, 2026
bbe1f3c
test(prover): a parseable census line from the knob-on assembled veri…
MauroToscano Sep 24, 2026
c63780e
test(stark): key the M3 query-bound mutation by the LDE size
MauroToscano Sep 24, 2026
1adbebe
feat(prover): the preprocessed roots of one-row tables (H5)
MauroToscano Sep 24, 2026
dfc498b
test(stark,prover): the S2 test vectors (H6)
MauroToscano Sep 24, 2026
525bf05
feat(stark): ONE_ROW_IMPLEMENTED = true (S2 on the host CPU paths)
MauroToscano Sep 24, 2026
9f5b8f7
style(stark): clippy manual_is_multiple_of in one_row_tests
MauroToscano Sep 24, 2026
f7a8c59
test(stark): M1 at the input tree — the input-slot check is load-bearing
MauroToscano Sep 24, 2026
25ec130
style(stark): clippy clone_on_copy in the input-slot M1 test
MauroToscano Sep 24, 2026
3992f28
Merge I-GUEST @ bbe1f3caf into the candidate (C5, G1, G2, host cap x …
MauroToscano Sep 24, 2026
45bbfd1
Merge I-FRI-D @ d9d676983 into the candidate (D1: S3 group-leaf FRI o…
MauroToscano Sep 24, 2026
3da7bee
Merge I-S2-H @ 25ec130e2 into the candidate (S2 on the host: H4, H5, H6)
MauroToscano Sep 24, 2026
730257a
style: rustfmt the candidate-c merge resolutions
MauroToscano Sep 24, 2026
23ee332
test(stark,prover): the device (d) vector tests count I-GUEST's cappe…
MauroToscano Sep 24, 2026
8d74043
fix(prover): key the AIR prototype cache on the proof format
MauroToscano Sep 24, 2026
f4d57bd
test(prover): merkle_cap_vm asserts the cap policy engaged
MauroToscano Sep 24, 2026
c9b6b1d
test(stark,prover): device-sized ZF tests prove an AirWithBuses table
MauroToscano Sep 24, 2026
eb6fe2b
test(math-cuda): evict before every cap height in the WHIR eviction test
MauroToscano Sep 24, 2026
737415e
style: rustfmt the I-FIX-B test edits
MauroToscano Sep 24, 2026
8aa8f47
Merge I-FIX-B @ 737415ee7 into candidate-d (candidate-c + the candida…
MauroToscano Sep 24, 2026
21b1b77
style: rustfmt the merged test module list (zf_air_cache_tests before…
MauroToscano Sep 24, 2026
130ddb1
feat(prover): one-row openings (S2) in the in-guest STARK verifier (G3)
MauroToscano Sep 24, 2026
a08a0bc
test(prover): S2 in the in-guest verifier against the host's (e) vect…
MauroToscano Sep 24, 2026
e72d3e6
test(prover): the leaf node prints how many of each wrap's sub-proofs…
MauroToscano Sep 25, 2026
7f4e3d9
feat(math-cuda): one-row (rows_per_leaf = 1) device leaves for S2 trees
MauroToscano Sep 25, 2026
1564fda
feat(stark): S2 on the device (D2) — one-row trees, openings and the …
MauroToscano Sep 25, 2026
381a8d3
test(stark,prover): S2 device parity (D2) — trees, openings, input tr…
MauroToscano Sep 25, 2026
699f087
feat(stark,prover): price every emitted FRI row and the S2 DEEP term …
MauroToscano Sep 25, 2026
3e867c4
test(prover): the one-row VM bytes test creates ZF_S2_PROOF_DIR
MauroToscano Sep 25, 2026
6991df5
Merge I-PRICE @ 699f0876b into candidate-e (RULINGS 22: every emitted…
MauroToscano Sep 25, 2026
963e1e7
Merge I-S2-G @ e72d3e64d into candidate-e (S2 in the in-guest STARK v…
MauroToscano Sep 25, 2026
7765d4d
Merge I-S2-D @ 3e867c463 into candidate-e (S2 on the device, D2)
MauroToscano Sep 25, 2026
5afc759
Merge zf/fix-b @ 737415ee7: wave B (STARK cap host+device, WHIR cap, …
MauroToscano Sep 25, 2026
ff78f04
feat(prover): the measured ZF configuration is the default format (RU…
MauroToscano Sep 25, 2026
cfbff6a
test(prover): the recursion-guest legacy test holds under any process…
MauroToscano Sep 25, 2026
0dd6341
feat(prover): one_row=auto joins the default format, provisionally (R…
MauroToscano Sep 25, 2026
5ed2f15
test(prover): the sh1 recount states the default's rounds without rea…
MauroToscano Sep 25, 2026
6a4a244
fix(prover): the Phase-A replay absorbs each preprocessed root at its…
MauroToscano Sep 25, 2026
91764db
test(prover): one-row Phase-A replay regressions (LFM wrap options at…
MauroToscano Sep 25, 2026
7c9b577
feat(stark): LogReadOnlyRAP carries a constraint program
MauroToscano Sep 25, 2026
c5b91a0
test(prover): a valid device-comparison oracle: LFM proof bytes, prov…
MauroToscano Sep 25, 2026
03fe727
style(stark): make fmt on the LogReadOnlyRAP program and its tests
MauroToscano Sep 25, 2026
39dea55
test(prover): the LFM bytes oracle asserts a device FRI commit in eve…
MauroToscano Sep 25, 2026
a4ce890
Merge I-FIX-S2 @ 91764db5d into candidate-f (the Phase-A replay absor…
MauroToscano Sep 25, 2026
d6cdfd3
Merge I-FIX-D2 @ 39dea5552 into candidate-f (device-parity fix: LogRe…
MauroToscano Sep 25, 2026
cdf0238
Revert "feat(prover): one_row=auto joins the default format, provisio…
MauroToscano Sep 25, 2026
65df270
test(prover): the LFM bytes oracle proves the default format and all …
MauroToscano Sep 25, 2026
d8ffc07
docs: make the proof-format comments self-contained
MauroToscano Sep 25, 2026
258ef0d
Merge zf/candidate-f-nob @ d8ffc0702: ZisK-style proof-format levers
MauroToscano Sep 25, 2026
169b668
Merge main (#996, jemalloc never-purge compiled in) into the WHIR pip…
MauroToscano Sep 25, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
38 changes: 37 additions & 1 deletion .github/workflows/pr_main.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -198,10 +198,41 @@ jobs:

# "Test" is a required check — keep this name to avoid branch protection changes.
# This gate job passes only when CLI, executor, disk-spill, and prover tests succeed.
host-kat:
# The device kernels' known-answer gates. `make test-*-host-kat` compiles the
# REAL `.cu` sources as host C++ through
# `crypto/math-cuda/tests/host_kat/cuda_host_shim.h` and runs them against
# external vectors (the official BLAKE3 vectors, miden-crypto's RPO vectors)
# and the committed oracle tables — g++ only, no CUDA, no cargo, seconds. It
# is the only per-PR check on the kernel arithmetic: the GPU parity suites
# (gpu-tests.yml) run on merge_group alone, and until this job existed the
# host-KAT targets lived in no workflow at all. Arithmetic only — nvcc
# acceptance and everything about execution stay with the GPU tests.
name: Host KAT (kernel pins)
runs-on: ubuntu-latest
if: github.event_name != 'push' || github.actor != 'github-merge-queue[bot]'
steps:
- name: Checkout sources
uses: actions/checkout@v4

- name: BLAKE3 host-KAT (7-round and 6-round arms)
run: make test-blake3-host-kat

- name: RPX host-KAT (permutation, leaf sponge, parent, leaf and tree kernels)
run: make test-rpx-host-kat

# Second source for the TABLES the BLAKE3 host-KAT trusts: upstream
# BLAKE3's portable C with its round loop parameterised, against the
# committed 6-round vectors and the Python oracle. A ~1 s C compile plus a
# few seconds of Python (cc + python3, both on the runner); it too had no
# workflow before this job.
- name: BLAKE3 second-source check of the 6-round tables
run: make test-blake3-second-source

test:
name: Test
if: always()
needs: [test-executor, test-cli, test-prover, test-disk-spill, test-stark-cuda-lib]
needs: [test-executor, test-cli, test-prover, test-disk-spill, test-stark-cuda-lib, host-kat]
runs-on: ubuntu-latest
steps:
- name: Check results
Expand All @@ -211,12 +242,14 @@ jobs:
prover="${{ needs.test-prover.result }}"
disk_spill="${{ needs.test-disk-spill.result }}"
stark_cuda_lib="${{ needs.test-stark-cuda-lib.result }}"
host_kat="${{ needs.host-kat.result }}"

echo "test-executor: $executor"
echo "test-cli: $cli"
echo "test-prover: $prover"
echo "test-disk-spill: $disk_spill"
echo "test-stark-cuda-lib: $stark_cuda_lib"
echo "host-kat: $host_kat"

# Allow "success" or "skipped" (skipped on merge queue pushes)
if [[ "$executor" != "success" && "$executor" != "skipped" ]]; then
Expand All @@ -234,6 +267,9 @@ jobs:
if [[ "$stark_cuda_lib" != "success" && "$stark_cuda_lib" != "skipped" ]]; then
exit 1
fi
if [[ "$host_kat" != "success" && "$host_kat" != "skipped" ]]; then
exit 1
fi

test-disk-spill:
name: Disk-spill tests
Expand Down
69 changes: 67 additions & 2 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ members = [
"crypto/ecsm",
"crypto/math",
"crypto/math-cuda",
"crypto/multilinear",
"bin/cli",
]
# Riscv-only bare-metal crate, path-dependent from crypto/crypto (target-gated),
Expand Down
Loading
Loading