---
# System prepended metadata

title: '“In R1CS arithmetization, you get addition for free”, what does that mean?'
tags: [R1CS]

---

# "In R1CS arithmetization, you get addition for free", what does that mean?

R1CS uses $AZ \circ BZ = CZ$ to represent constraints. Among them, Matrix $A, B, C$ represent the selectors of  all multiplication gates' left input, right input, and output respectively. The vector $Z$ represents Witness and exposed inputs and outputs. 
Therefore, Each multiplication corresponds to a row in $A, B, C$. For example, $A[i]Z \circ B[i]Z = C[i]Z$ can express the constraints of the $i$-th multiplication gate. And addition is already contained in the operation of matrix multiplication vector, that is, the input of the multiplication gate can be the sum of some elements in $Z$, instead of just one element. In this way, adding addition constraints will not change the size of $A, B, C, Z$, almost free.