Skip to content
Merged
Show file tree
Hide file tree
Changes from 23 commits
Commits
Show all changes
50 commits
Select commit Hold shift + click to select a range
33583fb
feat(params): add the Q128Offset275 SIS modulus profile
quangvdao Oct 10, 2026
b437262
fix(types): bind the exact field modulus in CommittedGroup::check
quangvdao Oct 10, 2026
b20c894
feat(algebra): limb transform over small primes and shifted remainder…
quangvdao Oct 10, 2026
afd504d
ci(algebra): run the binary arithmetic job with the parallel kernels
quangvdao Oct 10, 2026
97fc2d1
ci(algebra): run the limb transform on the native AArch64 runner
quangvdao Oct 10, 2026
0208baa
fix(algebra): label the limb phase benchmark by the prime it measures
quangvdao Oct 10, 2026
932c9b8
feat(params): LaBinius root parameters over the 25-bit commitment prime
quangvdao Oct 10, 2026
d1d9280
merge: algebra pull request head into the reduction base
quangvdao Oct 10, 2026
efe7dd2
merge: params branch into the reduction base
quangvdao Oct 10, 2026
32f445a
feat(labinius): root reduction for binary and prime evaluation claims
quangvdao Oct 10, 2026
d1df718
fix(labinius): fold without a staged source copy; leave akita-types a…
quangvdao Oct 10, 2026
c4c737b
fix(params): require the fold budget in the LaBinius fold-response de…
quangvdao Oct 10, 2026
04e6071
test(params): keep the zero-challenge rejection reachable under the f…
quangvdao Oct 10, 2026
70df0b8
docs(labinius): state the fold-budget premise of the response tail bound
quangvdao Oct 10, 2026
794f330
merge: params fold-budget fix into the reduction base
quangvdao Oct 10, 2026
e87e3cb
merge: reduction base with the params fold-budget fix
quangvdao Oct 10, 2026
4f09964
merge: carry the Q128Offset275 profile seam into the PCS base
quangvdao Oct 10, 2026
3ccb103
feat(labinius): polynomial commitment for binary and prime evaluation…
quangvdao Oct 10, 2026
4ec46aa
docs(labinius): point the reduction's commitment obligation at the PC…
quangvdao Oct 10, 2026
5d3c041
refactor(labinius): remove the catalog generator's unused probe mode
quangvdao Oct 10, 2026
eba92d3
fix(labinius): PCS geometry set, setup capacity check and dev-protoco…
quangvdao Oct 10, 2026
41be5d0
fix(labinius): bind the nested setup identity, not its provisioned ca…
quangvdao Oct 10, 2026
00f3602
test(labinius): drop a diagnostic print from the setup-capacity test
quangvdao Oct 10, 2026
a8d2756
Merge branch dev into quang/labinius-pcs
quangvdao Oct 10, 2026
fddf785
fix(cpu-backend): publish cache entries without waiting on in-flight …
quangvdao Oct 14, 2026
133ca2f
docs(book): improve correctness and clarity of protocol explanations …
f7ed Oct 15, 2026
2514b23
fix: defer ring-switch expansion to CPU consumers (#242)
RadNi Oct 15, 2026
dd999e6
refactor(cpu-backend): delete the dense i8 mirror and commit-side pre…
quangvdao Oct 15, 2026
df12b46
refactor(cpu-backend): route dense commit, fold and packing through a…
quangvdao Oct 15, 2026
29743dc
refactor(cpu-backend): route recursive packed witnesses through the B…
quangvdao Oct 15, 2026
cf95fd0
feat(cpu-backend): commit and open dense polynomials from signed inte…
quangvdao Oct 15, 2026
843e6b4
Merge origin/dev into quang/labinius-pcs
quangvdao Oct 16, 2026
4a01886
fix(planner): enforce packing prefix and multi-chunk quotient lift (#…
RadNi Oct 16, 2026
d0c375e
refactor: make witness chunking a runtime catalog policy (#246)
mtbadakhshan Oct 16, 2026
346fbbb
feat: Blake2b, Keccak, and NTT inline backends for RISC-V guest verif…
markosg04 Oct 19, 2026
81bbfe0
Revert "feat: Blake2b, Keccak, and NTT inline backends for RISC-V gue…
mtbadakhshan Oct 20, 2026
6d13540
feat(verifier): view trusted setup and terminal NTT caches in place (…
markosg04 Oct 20, 2026
dfdbd76
feat(sis)!: raise Module-SIS to NIST security category 3 (169-bit ADP…
sumchecker Oct 20, 2026
6679793
refactor(verifier): stop computing unused values in op-norm sampling,…
quangvdao Oct 21, 2026
06ddc6b
feat(schedules): selected-row catalog views for verifiers (#187)
markosg04 Oct 21, 2026
72c9638
test(fuzz): add a resumable liveness-first fuzzing campaign (#194)
sumchecker Oct 23, 2026
e423a39
fix(algebra): correct NEON i16 NTTs below the vector width (#222)
sumchecker Oct 23, 2026
a4c7e09
chore(deps): bump ctutils past RUSTSEC-2026-0385 (#263)
quangvdao Oct 25, 2026
fd6ca91
chore(dev): sync main into dev (2026-10-25)
quangvdao Oct 26, 2026
5847a40
Merge sync/main-2026-10-25 into quang/labinius-pcs
quangvdao Oct 26, 2026
177541b
Merge dev into quang/labinius-pcs
quangvdao Oct 26, 2026
258fdb6
ci(labinius-pcs): allow 60 minutes for the LaBinius PCS job
quangvdao Oct 26, 2026
bde940c
Merge dev into quang/labinius-pcs; pin jolt-field at f5c1947b1
quangvdao Oct 26, 2026
91724ae
perf(labinius): faster root opening kernels (#230)
quangvdao Oct 26, 2026
0ffc1ff
docs(labinius): correct Y's prover memory after the root rank increase
quangvdao Oct 26, 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
92 changes: 92 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,9 @@ jobs:
scripts/check-crate-deps.sh akita-metal
scripts/check-crate-deps.sh akita-zk-verifier
scripts/check-crate-deps.sh akita-zk-prover
scripts/check-crate-deps.sh akita-labinius-verifier
scripts/check-crate-deps.sh akita-labinius-prover
scripts/check-crate-deps.sh akita-labinius-pcs

labinius-trinomial:
name: LaBinius trinomial arithmetic and relation bridge
Expand Down Expand Up @@ -116,6 +119,10 @@ jobs:
run: cargo test -p akita-algebra --lib --no-default-features
- name: Test binary arithmetic
run: cargo test -p akita-algebra --lib --no-default-features --features labinius-binary binary
- name: Test parallel binary arithmetic
run: cargo test -p akita-algebra --lib --no-default-features --features labinius-binary,parallel binary
- name: Lint parallel binary arithmetic and benchmarks
run: cargo clippy -p akita-algebra --all-targets --no-default-features --features labinius-binary,parallel -- -D warnings
- name: Lint binary arithmetic and benchmarks
run: cargo clippy -p akita-algebra --all-targets --no-default-features --features labinius-binary -- -D warnings

Expand Down Expand Up @@ -257,6 +264,41 @@ jobs:
run: |
cargo test --release -p akita-pcs --test akita_fp128_e2e --no-default-features --features parallel,transcript-blake2b -- --exact heterogeneous::combined_family_setup_matches_per_family_proofs

# The LaBinius PCS ships its own catalogs, generated by its own binary, in
# both protocol directories.
test-labinius-schedule-artifact-drift:
name: LaBinius schedule artifact drift${{ matrix.suffix }}
runs-on: ubuntu-latest
timeout-minutes: 30
strategy:
matrix:
include:
- suffix: ""
extra-feature: ""
- suffix: "-dev"
extra-feature: ",akita-params/dev-protocol"
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: actions-rust-lang/setup-rust-toolchain@ecabd13d1c56bd1345c230e542e9144811ad706f # v2.0.0
with:
cache: false
- name: Cache Rust build artifacts
uses: Swatinem/rust-cache@6323deb102c322ba6fcbdcafc7e3dddab59af2b6 # v2.9.2
with:
shared-key: ci-test-labinius-schedule-artifact-drift
add-job-id-key: false
cache-on-failure: true
- name: Regenerate LaBinius schedule artifacts in temporary storage
env:
AKITA_SCHEDULE_GEN_JOBS: 2
run: |
artifact_root="$RUNNER_TEMP/akita-labinius-schedule-artifacts${{ matrix.suffix }}"
mkdir -p "$artifact_root"
cargo run --release -p akita-labinius-pcs --no-default-features \
--features "labinius,labinius-catalog-gen,transcript-blake2b${{ matrix.extra-feature }}" \
--bin gen_labinius_schedule_artifacts -- --output-dir "$artifact_root"
diff -ru "artifacts/schedules-labinius${{ matrix.suffix }}" "$artifact_root/schedules-labinius${{ matrix.suffix }}"

# The dev protocol has its own schedule set, so its drift check runs apart
# from the default one. Its tests run in `test-dev-protocol`.
test-dev-protocol-drift:
Expand Down Expand Up @@ -429,6 +471,56 @@ jobs:
- name: Check opt-in challenge targets
run: cargo clippy -p akita-challenges --all-targets --no-default-features --features labinius-challenges,${{ matrix.backend }} -- -D warnings

test-labinius-root:
name: LaBinius root reduction (${{ matrix.backend }})
runs-on: ubuntu-latest
timeout-minutes: 30
strategy:
matrix:
backend: [transcript-blake2b, transcript-keccak]
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: actions-rust-lang/setup-rust-toolchain@166cdcfd11aee3cb47222f9ddb555ce30ddb9659 # v1
with:
components: clippy
- name: Test the opt-in root reduction
run: cargo test --profile ci-test -p akita-labinius-verifier -p akita-labinius-prover --no-default-features --features labinius,${{ matrix.backend }}
- name: Test the parallel opt-in root reduction
run: cargo test --profile ci-test -p akita-labinius-verifier -p akita-labinius-prover --no-default-features --features labinius,parallel,${{ matrix.backend }}
- name: Check parallel opt-in targets
run: cargo clippy -p akita-labinius-verifier -p akita-labinius-prover --all-targets --no-default-features --features labinius,parallel,${{ matrix.backend }} -- -D warnings
- name: Check opt-in targets
run: cargo clippy -p akita-labinius-verifier -p akita-labinius-prover --all-targets --no-default-features --features labinius,${{ matrix.backend }} -- -D warnings
- name: Check unselected extension targets
run: cargo clippy -p akita-labinius-verifier -p akita-labinius-prover --all-targets --no-default-features --features ${{ matrix.backend }} -- -D warnings

test-labinius-pcs:
name: LaBinius PCS (${{ matrix.backend }})
runs-on: ubuntu-latest
timeout-minutes: 45
strategy:
matrix:
backend: [transcript-blake2b, transcript-keccak]
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: actions-rust-lang/setup-rust-toolchain@166cdcfd11aee3cb47222f9ddb555ce30ddb9659 # v1
with:
components: clippy
- name: Test the opt-in PCS
run: cargo test --profile ci-test -p akita-labinius-pcs --no-default-features --features labinius,${{ matrix.backend }}
- name: Test the parallel opt-in PCS
run: cargo test --profile ci-test -p akita-labinius-pcs --no-default-features --features labinius,parallel,${{ matrix.backend }}
- name: Test the parallel opt-in PCS under the dev protocol
run: cargo test --profile ci-test -p akita-labinius-pcs --no-default-features --features labinius,parallel,${{ matrix.backend }},akita-params/dev-protocol
- name: Check parallel opt-in targets
run: cargo clippy -p akita-labinius-pcs --all-targets --no-default-features --features labinius,parallel,${{ matrix.backend }} -- -D warnings
- name: Check opt-in targets
run: cargo clippy -p akita-labinius-pcs --all-targets --no-default-features --features labinius,${{ matrix.backend }} -- -D warnings
- name: Check the catalog generator
run: cargo clippy -p akita-labinius-pcs --all-targets --no-default-features --features labinius-catalog-gen,${{ matrix.backend }} -- -D warnings
- name: Check unselected extension targets
run: cargo clippy -p akita-labinius-pcs --all-targets --no-default-features --features ${{ matrix.backend }} -- -D warnings

test-timing:
name: Test timing
needs: [test]
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/portability.yml
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@ jobs:
RUSTFLAGS: -D warnings -C target-cpu=native
run: |
cargo test --release -p akita-algebra --lib --features labinius-binary binary
cargo test --release -p akita-algebra --lib --features labinius-trinomial trinomial::limb
cargo test --release -p akita-algebra --lib ntt
cargo test --release -p akita-types --lib ntt_cache
cargo test --release -p akita-verifier --lib terminal::ntt::
Expand Down
3 changes: 3 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,9 @@ scripts/check-crate-deps.sh akita-setup
scripts/check-crate-deps.sh akita-metal
scripts/check-crate-deps.sh akita-zk-verifier
scripts/check-crate-deps.sh akita-zk-prover
scripts/check-crate-deps.sh akita-labinius-verifier
scripts/check-crate-deps.sh akita-labinius-prover
scripts/check-crate-deps.sh akita-labinius-pcs
scripts/check-shared-field-identity.sh
scripts/check-external-schedule-artifacts.sh
cargo machete --with-metadata
Expand Down
8 changes: 8 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,14 @@ cargo run -p akita-sis-estimator --release --features parallel \
--example infinity_width_table -- --format rust-split --profile local-minimum
```

The opt-in LaBinius runtime table is emitted from the certified checked-in CSV,
without rerunning the lattice search:

```bash
cargo run -p akita-sis-estimator --no-default-features --features labinius-sis \
--example labinius_infinity_width_table -- --from-csv
```

Sage workflows in [`scripts/sis_golden/README.md`](scripts/sis_golden/README.md)
remain useful for pinned-estimator goldens and Euclidean comparison artifacts,
but must not overwrite the production L-infinity table.
59 changes: 59 additions & 0 deletions Cargo.lock

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

3 changes: 3 additions & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,9 @@ members = [
"crates/akita-sis-estimator",
"crates/akita-zk-prover",
"crates/akita-zk-verifier",
"crates/akita-labinius-verifier",
"crates/akita-labinius-prover",
"crates/akita-labinius-pcs",
]
# `profile/akita-recursion/` is a standalone sub-workspace: it pins its own
# `rust-toolchain.toml` (channel 1.95 + RISC-V targets) and applies Jolt's
Expand Down
Loading
Loading