# Circom Authors - Zero-Knowledge Background (Highlights)

## Highlights
- So, an arithmetic circuit takes some **input signals** that are values between `0,...,p-1` and performs additions and multiplications between them modulo the prime `p`. The output of every addition and multiplication gate is considered an **intermediate signal**, except for the last gate of the circuit, the output of which is the **output signal** of the circuit. ([View Highlight](https://read.readwise.io/read/01hs4dx4m5f1hwz47jhg58tqqg)) ^693690121
- From now on, the equations that describe the circuit will be called **constraints**, and you can think of them as conditions that signals of that circuit must satisfy. ([View Highlight](https://read.readwise.io/read/01hs4dz5v9gnbt0qqk42nyv2st)) ^693690205
- Note that constraints **must be quadratic, linear or constant equations**, and sometimes, by doing small modifications (like a change of variable or gathering two constraints), it is possible to reduce the number of constraints or variables. ([View Highlight](https://read.readwise.io/read/01hs4e216ffscbasec8wbppe46)) ^693690654
- An assignment of the signals is called a **witness**. ([View Highlight](https://read.readwise.io/read/01hs4e7k0hc11b63payeq2fsna)) ^693691554