Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Checking ring relations over a field

A fold has already produced the physical ring equations that connect its witness to the commitment payloads. This chapter explains how Akita turns those equations into field claims for sumcheck.

The difficulty is ring multiplication. In , a term becomes . Ordinary polynomial evaluation does not apply that rule. Akita has two ways to include its effect in the field check:

MethodMain ideaEffect on the witness
Quotient liftingRecord the reduction in a private quotient polynomialAdd its digits to the next witness
Quotient-free checking, called ReducedEvaluation in codeInclude the reduction in public weights on the existing coefficientsAdd no quotient digits

Both methods check the same ring equations. Raw or compressed payloads determine which physical equations exist. The ring-relation mode determines how to check them. We first explain both methods for one equation, then apply them to the complete fold.

Contents

Why ordinary evaluation is not enough

Consider one relation

where is a public multiplier, is private, and is a public target. Use the same letters for their canonical polynomial representatives. Each representative has degree less than .

Write for the remainder of a polynomial after division by . Equation (1) says

For example, let , , and . Their ordinary product is . Their ring product is , because in . Thus is the correct target. At a general field point , however,

The missing step is the reduction. To account for reduction modulo means to include each replacement in the field check. This replacement is also called a signed wrap. Multiplication with this rule is called negacyclic multiplication.

The evaluation point lies in the protocol's challenge field , which contains . It need not be a root of .

Quotient lifting

Quotient lifting keeps ordinary polynomial multiplication and adds the missing reduction explicitly. Equation (1) holds exactly when a quotient satisfies

The canonical representatives determine this quotient uniquely. It has degree less than . In the example, , because

The quotient is private because it depends on . The prover decomposes it into bounded digit polynomials using public gadget weights :

Here is the quotient digit depth. These digits join the next witness. After that witness is bound, the transcript samples . The field check is

The modulus factor multiplies the quotient contribution. This check does not divide by that factor.

To see the public weights, write . Then

The weight factors into one multiplier evaluation and one coefficient power. The quotient digits have weights . If is also stored through digits, substitute its public gadget recomposition as well. The entire check is linear in the committed digits.

Fixing the witness before is essential. For a false ring equation, no allowed quotient can make Equation (2) a polynomial identity. Once the witness and quotient are fixed, its nonzero polynomial residual has only a bounded number of roots. Random evaluation detects that residual except when is one of those roots. This is the algebraic check; commitment binding and the later sumcheck must still bind it to the same witness.

Quotient-free checking by reduced evaluation

Reduced evaluation applies the signed wrap before evaluating at . It uses the fact that multiplication by a public is linear in the private coefficients :

Define the public weight for coefficient by

This list of weights is called the residue kernel. The superscript records the native ring dimension. Evaluating the reduced equation now gives

Every weight is public. There is no private quotient to commit, range-check, or carry into later folds.

In the same example, and the only nonzero coefficient of is . Its weight is

Equation (7) therefore checks directly.

Why this is transpose-convolution

Let be the public matrix that multiplies a coefficient vector by with signed wraparound. Let be the coefficient vector of and let . Multiplication followed by evaluation is

The vector is exactly the residue kernel. This explains the name transpose-convolution: transpose the public multiplication map onto the evaluation weights. The implementation computes these weights without building .

The reduction correction has not disappeared. For each public basis product, write

The polynomial is public because and are public. Hence

The same correction that quotient lifting stores through private digits is already part of the public coefficient weights in Equation (7).

Compute the weights in linear time

Write . Expanding Equation (6) gives

This formula shows every signed wrap, but computing it separately for all takes quadratic work. A recurrence avoids that cost.

The first weight is . To get the next reduced basis product, multiply the current one by . Its top coefficient crosses the modulus boundary. Ordinary evaluation would give for that term. The ring requires instead. Subtracting their difference gives

For in , the first step is , as required. All weights for one multiplier take field operations. The recurrence uses no division, so it also works when .

Here soundness concerns the reduced residual . Fix the witness, public multiplier, and target before sampling . A false ring equation gives a nonzero of degree at most . For an ideal uniform challenge ,

This follows because a nonzero polynomial has at most its degree many roots. Random evaluation checks the reduced residual, rather than the unreduced product with its quotient term removed. The full relation also needs the row-batching bound below.

From one equation to the full relation

Both methods extend by linearity to a row with several public multipliers. For one native dimension , write its ordinary product sum as and its target as . The index selects a term in row . Each uses the coefficient slice required by that row's layout. The ring claim is .

Quotient lifting checks

Reduced evaluation instead checks

where is coefficient of the row's witness term. It uses , not a kernel for a larger storage ring. In either method, the resulting row is a scalar claim over . The public multipliers, targets, layout, and witness are fixed before ; the coefficient weights are then derived from that challenge.

For EvaluationTrace, the consistency and rows use the native A dimension. The and rows use their own dimensions. Compressed payloads also add rows in the native ring of each compression map. Fixed coefficient-recomposition terms keep the source positions defined by the payload relation. They do not change into ring embeddings between these dimensions.

SubringCoefficientPacking has a separate consistency geometry. Its logical relation is in and uses coordinate planes of length . In the current implementation it uses quotient lifting. Its modulus factor is , even though the stored planes have total width . The packing derivation explains how its E/Q terms and folded-source term jointly realize that one claim.

Batch the rows and hand them to Stage 2

Express each evaluated row in the stored digits. Let be the complete flat digit-witness table. Its address ranges over a padded Boolean domain . Each evaluated row has public coefficient weights such that

To construct , use the physical address of each stored digit from WitnessLayout. Add that digit's public weight, including its gadget recomposition factor, at the corresponding address. If several terms use the same digit, add their weights at that address. The witness stores the digit once; each use contributes to its coefficient in the row.

In quotient-lift mode, includes the quotient digits and includes their negative modulus factors. In reduced mode, includes the signed wraps and has no quotient coordinates.

The transcript samples the row point . Define the row weights and the combined public function

Both methods therefore supply the same form of field claim:

This combines all physical rows. The Stage 2 derivation separates their ordinary and compression contributions for efficient evaluation. It also adds the range-image binding and the scalar opening claim. Sumcheck reduces the combined claim to an opening of the same witness at its final point . The next fold authenticates that opening.

The three random objects have different jobs: evaluates the ring variable, batches rows, and addresses the flat witness. Range checking remains necessary in both modes. The ring relation checks algebraic consistency; the range check certifies small witness digits.

The EvaluationTrace scalar row is already a field-valued claim. It needs no ring-switch quotient in either mode. This is distinct from using residue kernels to check the physical ring rows without quotients. In particular, is still a physical ring relation.

Algebraic error after row batching

Row batching adds one more way for a false relation to pass: nonzero row errors can cancel at the sampled row point. We bound that event separately from the ring evaluation.

For reduced evaluation, let and . Condition on all witness values, public row data, and layout being fixed before . If any ring row is false, choose one nonzero . The probability that every vanishes is at most , since that event requires the chosen row to vanish.

Now fix and the resulting row residuals before sampling . Let be the number of coordinates of . Pad the physical-row residual table with zeros to its row addresses. If the table is nonzero, its multilinear extension

is nonzero and has total degree at most . For a fresh uniform , it vanishes with probability at most . Thus, for independent uniform and , a false collection of ring rows passes these two algebraic checks with probability at most

This bound covers only reduced ring evaluation and physical-row batching. It assumes the witness is already fixed. Commitment binding and extraction, the later sumchecks, and Fiat-Shamir challenge generation with transcript grinding require their own security arguments. The formula is not a soundness bound for the complete non-interactive proof.

What enters the next witness

The two choices now combine without changing their roles. Payload mode determines the commitment rows and compression digits. Relation mode determines whether those rows also need quotient digits.

PayloadQuotient liftingReduced evaluation
raw and ordinary quotient digits
compressed, compression digits, ordinary quotients, and compression quotients and compression digits

In the basic one-group EvaluationTrace layout, write for the quotient digits of the consistency, , , and rows, in that order. Quotient lifting gives the raw witness

For compressed payloads, retain the notation and for the two chains' compression digits at layer . Write and for that layer's quotient digits. The physical order, with alignment ranges suppressed, is

Reduced evaluation removes every segment from these layouts. It keeps the compression digits and their restricted check when the payload is compressed. WitnessLayout derives the live ranges and any required alignment for the selected mode. Missing quotients have no placeholder coordinates. They contribute no range-check work or successor commitment input. On multi-chunk folds, both payload modes align each chunk's Z/E/T body to the successor's source-block boundary. The semantic T range ends before the alignment gap. The canonical prover zero fills these gaps; verification allows in-range filler, subject to all later response checks, as described in alignment coordinates. Single-chunk folds keep the contiguous, unpadded Z/E/T body.

For coefficient packing, the shared ordinary quotient segment includes the consistency-row slot for the digit-decomposed coordinate planes of . It has no separate method-specific quotient span. The witness-order page gives the group, chunk, and coefficient order used by both sides.

Costs and current schedule choices

Quotient lifting gives the simple weights in Equation (5). The prover can keep a factored relation representation. Its cost includes computing the quotients and carrying their digits through commitment, range checking, Stage 2, and later folds.

Reduced evaluation removes that witness material. Its public weights are more involved. The recurrence makes one multiplier's kernel linear in its native dimension, but this is not a bound on the whole fold. The current prover builds one temporary dense Stage-2 relation-weight table. Sumcheck folds that table; the proof neither commits nor serializes it.

The verifier uses a different calculation. At the final sumcheck point it prepares compact weights for each required native coefficient window. It then uses the existing combined A/B/D setup scan. It does not build the prover's dense table. Matrix evaluation at a point derives this calculation. Compression F/H maps are evaluated separately.

This explains the tradeoff across recursion. Large early folds benefit from factored weights. In smaller later folds, quotient digits can form a larger share of the next witness. Removing them can reduce later work. These facts do not give a universal runtime winner or a fixed transition level.

Setup offloading is a separate choice. It replaces a direct public-setup scan with Stage 3 and a setup-prefix opening carried to the next fold. Quotient lifting supplies the factored weights used by the current offloading path. The offloading chapter explains that handoff.

The current schedule permits ReducedEvaluation only at single-chunk folds at level 2 or later. The first two folds and every multi-chunk fold require coefficient packing and quotient lift. The selected fold and every later nonterminal fold must use EvaluationTrace, consume no incoming setup prefix, and perform setup evaluation directly. Once the schedule switches, it cannot return to quotient lifting. The suffix can use raw or compressed payloads, subject to the separate payload rules. Coefficient-packing folds remain quotient-lift-only.

These are implementation restrictions. They do not show that other algebraic combinations are impossible. The schedule binds the mode before the next-witness binding and ; the proof carries no extra mode tag or challenge. The terminal fold has no ring-relation mode. It checks its clear response directly instead of producing another committed witness.

On an ordinary recursive edge, the outgoing binding is the next witness's commitment payload. On the last edge, it consists of the successor's inner commitment images. Both are fixed before the predecessor samples . The last edge does not add a duplicate outer commitment payload.

Code reference

  • ring_relation_mode.rs defines both modes and the allowed transition. FoldSchedule::validate_structure enforces the complete schedule restrictions.
  • witness_build/finalize.rs constructs the mode-selected witness inside the CPU backend. Reduced evaluation branches before quotient construction. WitnessLayout owns the actual ranges.
  • ring_switch.rs samples after the caller binds the outgoing witness. The CPU backend's relation_weights/stage2.rs then selects factored or dense relation weights for Stage 2.
  • ring/residue.rs implements the recurrence. Its tests compare the result with explicit signed multiplication and ring products, including points where .
  • relation/evaluation.rs selects the verifier calculation from the authenticated mode. Reduced mode uses the complete coefficient functional and rejects deferred setup.

The CPU relation tests check that raw and compressed reduced witnesses avoid quotient construction. The schedule tests check the transition, opening-method, and setup-prefix restrictions.