pub fn add3<AB: AirBuilder>(
builder: &mut AB,
a: &[<AB as AirBuilder>::Var; 2],
b: &[<AB as AirBuilder>::Var; 2],
c: &[<AB as AirBuilder>::Expr; 2],
d: &[<AB as AirBuilder>::Expr; 2],
)
Expand description
Verify that a = b + c + d mod 2^32
We assume that a, b, c, d are all given as 2, 16
bit limbs (e.g. a = a[0] + 2^16 a[1]
) and
each 16
bit limb has been range checked to ensure it contains a value in [0, 2^16)
.
This function assumes we are working over a field with characteristic P > 3*2^16
.