Skip to content

Bind shifted affine virtuals to source columns - #233

Open
latifkasuli wants to merge 1 commit into
NethermindEth:mainfrom
latifkasuli:feat/affine-virtual-shifted-sources
Open

Bind shifted affine virtuals to source columns#233
latifkasuli wants to merge 1 commit into
NethermindEth:mainfrom
latifkasuli:feat/affine-virtual-shifted-sources

Conversation

@latifkasuli

@latifkasuli latifkasuli commented Aug 18, 2026

Copy link
Copy Markdown
Contributor

Goes towards #185, which blocks #91. Follow-up to #230.

This extends affine virtual Booleanity targets to forward-row-shifted sources:

  • Shifted source pairs are deduplicated in public UAIR-signature order.
  • The prover carries one evaluation per unique shifted witness source and appends signature-derived shifts over the existing alpha-prime-projected witness slots to multipoint evaluation.
  • Shifted witness evaluations are absorbed before multipoint challenges and bound to committed source openings through the existing shift kernel and PCS chain.
  • The verifier derives the exact witness-claim count from the public signature, recomputes shifted public sources directly, and reconstructs each expected affine endpoint from its shifted and unshifted terms.
  • Per-prime families receive matching zero padding because affine virtual Booleanity targets remain in $Q[X]$.

Shifts at or beyond the trace domain now consistently represent the all-zero, zero-padded column in both the prover MLE selector and verifier shift predicate. The affine materializer also handles index overflow as an out-of-range row.

Affine virtuals remain uncommitted Booleanity targets, so shifted witness terms reuse existing committed source openings and add no PCS commitments. SHA-256/ECDSA UAIR adoption remains separate.

Tests cover shifted witness-only and public-only paths, interleaved public/witness ordering across two witness sources, first-occurrence deduplication and appended-source indices, signature-derived length rejection, tampered shifted claims, and shifts equal to or greater than the trace length.

@latifkasuli
latifkasuli marked this pull request as ready for review August 18, 2026 14:34
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