Computation Coprocessors

Computation Coprocessors#

Each coprocessor proves operations on the Operation Bus (5000). The Main AIR assumes tuples of the form \((\mathrm{opcode}, a_1, a_2, \ldots, a_k)\), and the coprocessor proves matching tuples with the computed result.

Binary#

The Binary AIR (\(2^{22}\) rows) handles bitwise operations: AND, OR, XOR, and unsigned/signed comparisons (LTU, LT). Operations are decomposed into byte-level lookups via the Binary Table (bus ID 125).

BinaryAdd#

The BinaryAdd AIR (\(2^{22}\) rows) provides dedicated 64-bit addition. Separated from the Binary AIR for constraint degree optimization.

BinaryExtension#

The BinaryExtension AIR (\(2^{22}\) rows) handles shifts (logical left/right, arithmetic right) and sign-extension operations. Uses the Binary Extension Table (bus ID 124) for byte-level decomposition.

Arith#

The Arith AIR (\(2^{21}\) rows) handles 64-bit multiplication and division. Operands are decomposed into 16-bit chunks, and the multiplication is verified via a schoolbook decomposition with carry propagation. Uses the Arith Table (bus ID 331) and Arith Range Table (bus ID 330) for chunk-level lookups.