Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
146 commits
Select commit Hold shift + click to select a range
96b3768
Add F192/F160 tower fields and a field-comparison benchmark
TomWambsgans Jul 4, 2026
058a7f1
Remove the F160 field
TomWambsgans Jul 4, 2026
3ba90ab
Ligerito over GF(2^64): commit in K, open in the tower F128T
TomWambsgans Jul 5, 2026
5121b04
Add the succinct verifier to ligerito_k
TomWambsgans Jul 5, 2026
f8dfd43
Add the explicit GHASH-to-tower field isomorphism
TomWambsgans Jul 5, 2026
47bcd4f
Ring switching F_2 to GF(2^64), opened over the tower
TomWambsgans Jul 5, 2026
7495271
Stacked batch-mixed opening over the K-committed PCS
TomWambsgans Jul 5, 2026
b74b360
Transition the VM to 64-bit machine words over GF(2^64)
TomWambsgans Jul 5, 2026
27cd26f
Update the design docs to the shipped 64-bit design
TomWambsgans Jul 5, 2026
658d36b
Fold constant heap indices into DEREF's beta immediate
TomWambsgans Jul 5, 2026
c7510a9
Remove the prover's memory cliffs in the stacked K opening
TomWambsgans Jul 5, 2026
c650039
Speed up the ring-switch prove and the bus claim decomposition
TomWambsgans Jul 5, 2026
9efcd7e
Add the transition fields to field_bench
TomWambsgans Jul 5, 2026
0b37f4f
Add the transition performance report
TomWambsgans Jul 5, 2026
8b5320b
Vector-resident PMULL-fold kernels for K and the tower
TomWambsgans Jul 5, 2026
9213af9
Refresh the perf report with post-kernel-rewrite numbers
TomWambsgans Jul 5, 2026
be2a199
Condense the field-question section to a TLDR
TomWambsgans Jul 5, 2026
e2e40d3
Clarify PCS throughput units (gigabits, not gibibytes)
TomWambsgans Jul 5, 2026
9a1ad30
Use GiB units throughout; make the field TLDR honest about the 1.8x
TomWambsgans Jul 5, 2026
af77e19
Merge branch 'main' into field-exploration
TomWambsgans Jul 9, 2026
76490c6
Deferred-reduction accumulators for the tower; wire into the prover h…
TomWambsgans Jul 9, 2026
7ee3639
Defer reductions in the Ligerito-K initial sumcheck kernels
TomWambsgans Jul 9, 2026
e957a6d
Port main's ring-switch optimizations to the K variant
TomWambsgans Jul 10, 2026
a6f1a34
Merge branch 'main' into field-exploration
TomWambsgans Jul 13, 2026
e6bc867
vm: 128-bit memory words (E) with 64-bit addressing (K)
TomWambsgans Jul 14, 2026
7697eff
Merge branch 'main' into field-exploration
TomWambsgans Jul 14, 2026
79ff5d8
field: add x86_64 pclmulqdq path for GF(2^64) and the F128T tower
TomWambsgans Jul 14, 2026
416560c
wip
TomWambsgans Jul 14, 2026
f413266
field: add binius64 degree-2 tower and bench it vs the Artin-Schreier…
TomWambsgans Jul 14, 2026
e4d0254
field: aarch64 NEON path for the binius64 tower (F128Txy)
TomWambsgans Jul 14, 2026
ae3dae0
field: schoolbook batched inner-product NEON kernel + noise-robust co…
TomWambsgans Jul 14, 2026
4e2c934
field: AVX-512 VPCLMULQDQ batched inner-product kernels for both towers
TomWambsgans Jul 14, 2026
71e3dde
field benches: wire the VPCLMULQDQ batched inner product
TomWambsgans Jul 14, 2026
38f6584
field: switch the VM's extension field E to the binius64 tower
TomWambsgans Jul 14, 2026
91f4d6e
Merge commit '53077e5' into field-exploration
TomWambsgans Jul 14, 2026
012f3c0
Merge commit 'bd8b31b' into field-exploration
TomWambsgans Jul 14, 2026
7b09e88
Merge commit 'a825bf6' into field-exploration
TomWambsgans Jul 14, 2026
5c71424
Merge commit '11e799f' into field-exploration
TomWambsgans Jul 14, 2026
0df297a
Merge commit 'b336897' into field-exploration
TomWambsgans Jul 14, 2026
f3bfe64
Merge commit '086f622' into field-exploration
TomWambsgans Jul 14, 2026
1a34f63
Merge commit '7b74709' into field-exploration
TomWambsgans Jul 14, 2026
be6b057
Merge commit '2905de0' into field-exploration
TomWambsgans Jul 14, 2026
64c2d96
Merge commit '9e957fc' into field-exploration
TomWambsgans Jul 14, 2026
d8d5fca
Merge commit 'b7e1be2' into field-exploration
TomWambsgans Jul 14, 2026
e1a3dde
Merge commit 'b956c4d' into field-exploration
TomWambsgans Jul 14, 2026
4e8155f
lean_vm: drop the DEREF pointer's always-zero HI lane (K-valued address)
TomWambsgans Jul 14, 2026
39aa6f0
flock: migrate the verifier to the binius tower (F128T)
TomWambsgans Jul 15, 2026
8dc258d
recursion: port the N->1 aggregation to the 64-bit tower protocol
TomWambsgans Jul 15, 2026
202357b
recursion: remove the `recursion` feature gate (harness is ported)
TomWambsgans Jul 15, 2026
4981f4a
sponge: carry the domain-separation tag in lane 2 (main convention)
TomWambsgans Jul 15, 2026
d5765ee
field: remove GHASH and use tower field throughout
TomWambsgans Jul 15, 2026
1b77d69
Merge branch 'tower-only-flock' into field-exploration
TomWambsgans Jul 15, 2026
9b08239
flock: restore standalone BLAKE3 batch benchmark
TomWambsgans Jul 15, 2026
c7a8700
cpu: transmit the PI low lane so the guest skips Frobenius extraction
TomWambsgans Jul 15, 2026
5a4ca0f
Merge branch 'main' into field-exploration
TomWambsgans Jul 15, 2026
6e01a67
pcs: optimize tower-field stacked openings
TomWambsgans Jul 15, 2026
34ef1ef
pcs: batch F64 NTT butterflies with VPCLMUL
TomWambsgans Jul 15, 2026
d603882
docs: align field architecture documentation
TomWambsgans Jul 15, 2026
3a10a74
pcs: batch F64 NTT butterflies with NEON
TomWambsgans Jul 15, 2026
97d9c68
Fix bus grinding soundness bound
TomWambsgans Jul 15, 2026
40361b1
Clarify division by zero semantics
TomWambsgans Jul 15, 2026
18f169f
feat: migrate recursion and PCS to F192
TomWambsgans Jul 15, 2026
ea9f46b
Use univariate batching for GF192 ring switching
TomWambsgans Jul 15, 2026
1c00a75
Document the GF192 machine field
TomWambsgans Jul 15, 2026
9dbb11b
Native verifier evaluates A0/B0 by circuit walking
TomWambsgans Jul 15, 2026
c3d9c0f
recursion: cache the compiled guest across verifies
TomWambsgans Jul 15, 2026
f19a7e7
doc
TomWambsgans Jul 15, 2026
b62fe29
Merge field-exploration into small-proof
TomWambsgans Jul 15, 2026
d31efa0
Optimize GF192 ring switching in recursion
TomWambsgans Jul 15, 2026
c7e5006
Move Ligerito to 128-bit Johnson list decoding
TomWambsgans Jul 15, 2026
3dbc728
Make Ligerito rate proof-local and recursion-generic
TomWambsgans Jul 15, 2026
2e9a5e5
Audit and tighten Ligerito soundness parameters
TomWambsgans Jul 15, 2026
bb946d6
Use aggressive recursive RS rate schedule
TomWambsgans Jul 16, 2026
be2491a
Optimize Johnson eta per recursive level
TomWambsgans Jul 16, 2026
9871e88
Use query grinding to reduce proof size
TomWambsgans Jul 16, 2026
2f68b07
Merge branch 'main' into small-proof
TomWambsgans Jul 17, 2026
7e877a6
Align Ligerito RBR soundness doc and implementation
TomWambsgans Jul 17, 2026
2525987
pcs/ligerito_k: pool the initial-sumcheck fold buffers (x86_64)
TomWambsgans Jul 17, 2026
6ad0bed
add pcs_throughput benchmark
TomWambsgans Jul 18, 2026
b60c74d
make tests pass
TomWambsgans Jul 18, 2026
d8dfe8b
remove 128 bits fields
TomWambsgans Jul 18, 2026
f1a7750
enable tracing
TomWambsgans Jul 18, 2026
84b70d4
primitives: add AVX-512VBMI bit transpose
TomWambsgans Jul 18, 2026
32f55ea
improve hierarchical PCS tracing
TomWambsgans Jul 18, 2026
68fdc94
pcs: vectorize F192 NTT with AVX-512
TomWambsgans Jul 18, 2026
ba84ee1
pcs: make F64 Ligerito the sole implementation
TomWambsgans Jul 18, 2026
3a261aa
Pretty-print displayed integers with commas
TomWambsgans Jul 19, 2026
7be40ba
Document MCA error in unique-decoding regime
TomWambsgans Jul 19, 2026
e4cc1f7
Add PACK64X2 base-field packing instruction
TomWambsgans Jul 19, 2026
6d1234c
Simplify recursion hashing to canonical BLAKE3 cells
TomWambsgans Jul 19, 2026
2610ab3
Use Horner evaluation for challenge polynomials
TomWambsgans Jul 19, 2026
1a2258d
Support StackBuf returns from normal functions
TomWambsgans Jul 19, 2026
e9f5c3c
Merge branch 'main' into small-proof
TomWambsgans Jul 20, 2026
6ac6083
Merge branch 'main' into small-proof
TomWambsgans Jul 22, 2026
c834012
Fix recursion_soundness_binds' stale stacked-size mirror
TomWambsgans Jul 22, 2026
0e01338
Merge branch 'main' into small-proof
TomWambsgans Jul 27, 2026
0e5614b
Generalize the closed-form ring-switch coefficients to the F192 tower
TomWambsgans Jul 27, 2026
bde7a6d
Clear the workspace clippy warnings
TomWambsgans Jul 27, 2026
968f8e5
Quote recursion at a 2^26 inner PCS
TomWambsgans Jul 27, 2026
113a5f8
Merge branch 'main' into small-proof
TomWambsgans Jul 27, 2026
5478213
Fix the truncated cycles-per-inner-cycle ratio in the recursion report
TomWambsgans Jul 28, 2026
314a507
Merge branch 'main' into small-proof
TomWambsgans Jul 31, 2026
2c3d21c
Merge branch 'main' into small-proof
TomWambsgans Aug 1, 2026
7d2dd31
Merge branch 'main' into small-proof
TomWambsgans Aug 1, 2026
d46319e
Merge branch 'main' into small-proof
TomWambsgans Aug 1, 2026
47c8a09
Merge branch 'main' into small-proof
TomWambsgans Aug 1, 2026
d818924
fix: reject noncanonical transcript encodings
TomWambsgans Aug 1, 2026
5385219
fix: remove uninitialized Vec construction
TomWambsgans Aug 1, 2026
c848b7d
perf: share BLAKE3 setup by circuit shape
TomWambsgans Aug 1, 2026
85d29ea
perf: avoid clearing write-only prover buffers
TomWambsgans Aug 1, 2026
d145f67
refactor: clarify recursive opening shapes
TomWambsgans Aug 1, 2026
0f82463
refactor: clarify small-proof protocol interfaces
TomWambsgans Aug 1, 2026
283727b
docs: align the small-proof specification with F192
TomWambsgans Aug 1, 2026
75afc1f
ci: isolate LaTeX publication permissions
TomWambsgans Aug 1, 2026
6ae51f4
tooling: attribute guest cycles to source
TomWambsgans Aug 1, 2026
c53f4cd
compiler: value numbering over lowered code
TomWambsgans Aug 1, 2026
ecc511d
recursion guest: share the low-coordinate eq chains across claims
TomWambsgans Aug 1, 2026
a798d91
recursion guest: evaluate the y-slot MLE by folding
TomWambsgans Aug 1, 2026
18ca694
recursion guest: hoist the bit-ladder constant into frame cells
TomWambsgans Aug 1, 2026
4e17e54
ring switch: pick the batching map, not the weights
TomWambsgans Aug 1, 2026
f850c2e
recursion guest: one padding-surplus ladder per table, not per block
TomWambsgans Aug 1, 2026
4778885
recursion guest: pin the level roots by store, not by assert
TomWambsgans Aug 1, 2026
71cbe16
recursion guest: decode a squeezed word by group-shifted runs
TomWambsgans Aug 1, 2026
d4e9374
recursion guest: fold the residual with monomial weights
TomWambsgans Aug 1, 2026
b02e6e3
recursion guest: derive the row words from the packed cells
TomWambsgans Aug 1, 2026
d973b80
compiler: preserve branch-local hints during CSE
TomWambsgans Aug 1, 2026
acac354
docs: rewrite the ring-switch instantiation from first principles
TomWambsgans Aug 1, 2026
4dc7362
recursion: accelerate ring switching and Merkle verification
TomWambsgans Aug 1, 2026
90a18e3
Merge branch 'main' into small-proof
TomWambsgans Aug 2, 2026
56c332d
docs: run ring switching over an ambient field L
TomWambsgans Aug 2, 2026
dd2d770
Merge main into small-proof
TomWambsgans Aug 2, 2026
10c0fd8
docs: rewrite ring switching for the 64/192 instance
TomWambsgans Aug 2, 2026
ade7eb3
fix comment
TomWambsgans Aug 2, 2026
5a3631e
multilinear: one multiply per pair when building eq tables
TomWambsgans Aug 2, 2026
1803fdf
merkle: hash on the idle efficiency cores too
TomWambsgans Aug 2, 2026
1625619
merkle: eight-wide NEON BLAKE3 kernel for whole-chunk leaves
TomWambsgans Aug 2, 2026
750f86f
ntt: fuse three top layers into a radix-8 butterfly
TomWambsgans Aug 2, 2026
07edcf8
merkle: batch the non-power-of-two leaf widths too
TomWambsgans Aug 2, 2026
0103bab
lincheck: one stripe load and EOR3-paired gathers in the NEON fold
TomWambsgans Aug 2, 2026
bdda7d4
lincheck: AVX-512 tiled gather, the vpternlogq twin of the NEON kernel
TomWambsgans Aug 3, 2026
b409183
Merge branch 'main' into small-proof
TomWambsgans Aug 3, 2026
44d8d5c
Merge branch 'main' into small-proof
TomWambsgans Aug 3, 2026
7e7a689
benchmarks
TomWambsgans Aug 3, 2026
eb4cf1d
rec: size g_logs_pow2 to SIZE_BITS in the recursion guest
TomWambsgans Aug 3, 2026
af7c6e8
rec: size LIG_PACKED_ROW_CAP for the raw-limb lanes buffer
TomWambsgans Aug 3, 2026
b9a00f7
style: cargo fmt
TomWambsgans Aug 3, 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
24 changes: 20 additions & 4 deletions .github/workflows/pcs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,18 +6,35 @@ on:
paths:
- 'misc/pcs.tex'
- '.github/workflows/pcs.yml'
pull_request:
paths:
- 'misc/pcs.tex'
- '.github/workflows/pcs.yml'
workflow_dispatch:

permissions:
contents: write

concurrency:
group: pcs-${{ github.ref }}
cancel-in-progress: true

jobs:
check-pdf:
if: github.event_name == 'pull_request'
runs-on: ubuntu-latest
permissions:
contents: read
steps:
- uses: actions/checkout@v4
- name: Compile LaTeX
uses: xu-cheng/latex-action@v3
with:
working_directory: misc
root_file: pcs.tex

build-pdf:
if: github.event_name != 'pull_request'
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- uses: actions/checkout@v4
- name: Compile LaTeX
Expand All @@ -26,7 +43,6 @@ jobs:
working_directory: misc
root_file: pcs.tex
- name: Publish PDF as release asset
if: github.event_name != 'pull_request'
uses: softprops/action-gh-release@v2
with:
tag_name: pcs-latest
Expand Down
25 changes: 21 additions & 4 deletions .github/workflows/pdf.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,18 +7,36 @@ on:
- 'misc/doc.tex'
- 'misc/images/**'
- '.github/workflows/pdf.yml'
pull_request:
paths:
- 'misc/doc.tex'
- 'misc/images/**'
- '.github/workflows/pdf.yml'
workflow_dispatch:

permissions:
contents: write

concurrency:
group: pdf-${{ github.ref }}
cancel-in-progress: true

jobs:
check-pdf:
if: github.event_name == 'pull_request'
runs-on: ubuntu-latest
permissions:
contents: read
steps:
- uses: actions/checkout@v4
- name: Compile LaTeX
uses: xu-cheng/latex-action@v3
with:
working_directory: misc
root_file: doc.tex

build-pdf:
if: github.event_name != 'pull_request'
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- uses: actions/checkout@v4
- name: Compile LaTeX
Expand All @@ -27,7 +45,6 @@ jobs:
working_directory: misc
root_file: doc.tex
- name: Publish PDF as release asset
if: github.event_name != 'pull_request'
uses: softprops/action-gh-release@v2
with:
tag_name: spec-latest
Expand Down
24 changes: 20 additions & 4 deletions .github/workflows/ring-switching.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,18 +6,35 @@ on:
paths:
- 'misc/ring-switching.tex'
- '.github/workflows/ring-switching.yml'
pull_request:
paths:
- 'misc/ring-switching.tex'
- '.github/workflows/ring-switching.yml'
workflow_dispatch:

permissions:
contents: write

concurrency:
group: ring-switching-${{ github.ref }}
cancel-in-progress: true

jobs:
check-pdf:
if: github.event_name == 'pull_request'
runs-on: ubuntu-latest
permissions:
contents: read
steps:
- uses: actions/checkout@v4
- name: Compile LaTeX
uses: xu-cheng/latex-action@v3
with:
working_directory: misc
root_file: ring-switching.tex

build-pdf:
if: github.event_name != 'pull_request'
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- uses: actions/checkout@v4
- name: Compile LaTeX
Expand All @@ -26,7 +43,6 @@ jobs:
working_directory: misc
root_file: ring-switching.tex
- name: Publish PDF as release asset
if: github.event_name != 'pull_request'
uses: softprops/action-gh-release@v2
with:
tag_name: ring-switching-latest
Expand Down
32 changes: 32 additions & 0 deletions .github/workflows/rust.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
name: Rust

on:
push:
branches: [ "main" ]
pull_request:
workflow_dispatch:

permissions:
contents: read

concurrency:
group: rust-${{ github.ref }}
cancel-in-progress: true

jobs:
release:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
with:
components: clippy
- uses: Swatinem/rust-cache@v2
- name: Test
run: cargo test --release --workspace
- name: Clippy
run: cargo clippy --release --workspace --all-targets -- -D warnings
- name: Rustdoc
env:
RUSTDOCFLAGS: -D warnings
run: cargo doc --release --workspace --no-deps
32 changes: 12 additions & 20 deletions Cargo.lock

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

Loading
Loading