Skip to content

Add LogUp module with lookup Uairs#167

Open
amit0365 wants to merge 6 commits into
mainfrom
amit0365/logup_module
Open

Add LogUp module with lookup Uairs#167
amit0365 wants to merge 6 commits into
mainfrom
amit0365/logup_module

Conversation

@amit0365
Copy link
Copy Markdown
Contributor

@amit0365 amit0365 commented Apr 10, 2026

Part of #107 — Wiring lookups with the full protocol is needed to fully resolve.

Summary

LogUp lookup module (piop/src/lookup/):

  • logup.rs: batched build_sumcheck_groups (L columns → 2 groups: degree-3 zerocheck for inverse correctness, degree-2 sumcheck for LogUp sum identity) and finalize_verifier with identity checks
  • utils.rs: projected table generation (BitPoly/Word), two-phase Montgomery batch inverse (single field inversion across all parallel chunks), parallel multiplicity counting via local per-chunk counts - other primitives mostly copied from @albert-garreta agentic branch.
  • cfg_chunk_size! macro in utils/src/parallel.rs for unified parallel/sequential chunk dispatch

Test UAIRs:

  • SimpleLookupUair, MultiColLookupUair, MultiGroupLookupUair, BitPolyLookupUair in test-uair/src/lib.rs

Optimizations

  • batching: L lookup columns sharing a table type collapse into 2 sumcheck groups (not 2·L), removing the L factor from proof size
  • v not committed: table inverse v = 1/(β − T) is verifier-computable from the public table, saving one PCS column per lookup group
  • Single-inversion batch inverse: hierarchical Montgomery trick across parallel chunks, reducing K inversions to 1 with O(K) extra sequential muls

Test plan

  • 10 logup unit tests: 4 happy-path roundtrips, 1 invalid witness, 5 negative (tamper u/m/w eval, γ mismatch at L=2, single-column aux tamper at L=2)

@amit0365 amit0365 marked this pull request as ready for review April 10, 2026 17:01
@amit0365 amit0365 force-pushed the amit0365/logup_module branch from 2a66c28 to 17c0545 Compare April 11, 2026 11:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant