As shown in an earlier section (refer to Components), S-two represents the trace using multiple tables where each table is referred to as a component. An AIR in S-two is a collection of multiple components. Components can interact with one another, and the consistency of these interactions is verified using logUp.For example, in the hash function example, the scheduling component and computing component interact with each other, where both the components lookup the input and output pair. The consistency of this interaction is then verified by adding logUp constraints to each component.Each component consists of a trace table of a specific height along with a set of constraints. These constraints include computation constraints as well as lookup constraints (refer to Lookups).This section provides an overview of how these components are converted into a composition polynomial. This composition polynomial is then used by a polynomial commitment scheme to commit and generate evaluation proofs.
This section explains how a composition polynomial is computed using an example.Consider an AIR composed of two components with trace tables: T0 and T1. The component table T0 is defined over the trace domain Dn0, which is a canonic coset of size N0=2n0. Similarly, component table T1 is defined over the trace domain Dn1 of size N1=2n1.The prover interpolates the trace polynomials for each component and then evaluates the trace polynomials over an evaluation domain that is a blowup factor B=2β times larger than the trace domain. Thus, the evaluation domain for component table T0 is Dn0+β of size 2n0+β. Similarly, the evaluation domain for component table T1 is Dn1+β of size 2n1+β. Both interpolation and evaluation use circle FFT. The prover then commits to the evaluations of trace polynomials from all components using a single Merkle tree.Both component tables define computation constraints and lookup constraints for their specific component. The component constraints are proven table-wise, each with its separate domain quotient, which are then combined into a single cross-domain composition polynomial. Suppose the component tables T0 and T1 have a total of c0 and c1 constraints, respectively.The verifier sends γ∈QM31 to the prover. We use the same γ to combine all constraints across different component tables. First, γ is used to compute the random linear combination of all constraints on component T0 to obtain the component-level composition polynomial p0. Then, the prover uses the same γ to compute the component-level composition polynomial p1 for component T1.The prover then computes the quotient for component table T0 as q0=p0/vn0, where vn0 is the vanishing polynomial for trace domain Dn0. Similarly, the prover computes the quotient for component table T1 as q1=p1/vn1.Finally, the prover computes the cross-domain composition polynomial asq=q0+γc0⋅q1where c0 is the total number of constraints of the component table T0.The next section examines how these concepts are implemented.