“…R1CS circuits are normally constructed programmatically using libraries [3,4,6,27,28] that provide facilities to build gadgets hierarchically. These libraries are invoked directly, by programs written to build specific circuits, or indirectly, by compilers of higher-level languages to R1CS [2,5,25,31,11,29]. As these libraries are invoked, they generate growing sequences of the R1CS constraints that form the gadgets.…”