Skip to content

Instantly share code, notes, and snippets.

@iamalwaysuncomfortable
Last active January 4, 2023 03:34
Show Gist options
  • Save iamalwaysuncomfortable/0e9642151a243372ec6d6d87967ef083 to your computer and use it in GitHub Desktop.
Save iamalwaysuncomfortable/0e9642151a243372ec6d6d87967ef083 to your computer and use it in GitHub Desktop.
Arithmetic Circuit 1

Arithmetic circuit for ${\Huge c_{5}c_{6}c_{7}c_{9}^3 + c_{1}c_{2}c_{9}^2 + c_{3}c_{4}c_{9}^2 + c_{8}c_{9} }$

graph TD
    C9 --> G1
    C9 --> G1["G1(*)"]
    G1 -->G2
    C9 --> G2["G2(*)"]
    C1 --> G3
    C2 --> G3["G3(*)"]
    C3 --> G4
    C4 --> G4["G4(*)"]
    G3 --> G5["G5(+)"]
    G4 --> G5
    C5 --> G6
    C6 --> G6["G6(*)"]
    G6 --> G7["G7(*)"]
    C7 --> G7
    G2 --> G8
    G7 --> G8["G8(*)"]
    G1 --> G9["G9(*)"]
    G5 --> G9
    G9 --> G11["G11(+)"]
    G8 --> G11
    C8 --> G10["G10(*)"]
    C9 --> G10
    G10 --> G12["G12(+)"]
    G11 --> G12
Loading

This graph can be written as:

$c9*c9 = g1$

$c1*c2 = g3$

$c3*c4 = g4$

$c5*c6 = g6$

$x*c8 = g10$

$c7*g6 = g7$

$g4+g3 = g5$

$g5*g1 = g9$

$c9*g1 = g2$

$g2*g7 = g8$

$g8+g9 = g11$

$g11+g10 = g12$

Which boils to a total rank 1 constraint system of:

s1 = [1, c9,c1,c2,c3,c4,c5,c6,c7,c8,g1,g2,g3,g4,g5,g6,g7,g8,g9,g10,g11,g12]
l1 = [0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,  0,  0,  0]
r1 = [0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,  0,  0,  0]
w1 = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,  0,  0,  0]

l2 = [0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,  0,  0,  0]
r2 = [0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,  0,  0,  0]
w2 = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,  0,  0,  0]

l3 = [0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,  0,  0,  0]
r3 = [0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,  0,  0,  0]
w3 = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,  0,  0,  0]

l4 = [0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,  0,  0,  0]
r4 = [0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,  0,  0,  0]
w4 = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,  0,  0,  0]

l5 = [0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,  0,  0,  0]
r5 = [0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,  0,  0,  0]
w5 = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,  1,  0,  0]

l6 = [0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,  0,  0,  0]
r6 = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,  0,  0,  0]
w6 = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,  0,  0,  0]

l7 = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0,  0,  0,  0]
r7 = [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,  0,  0,  0]
w7 = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,  0,  0,  0]

l8 = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,  0,  0,  0]
r8 = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,  0,  0,  0]
w8 = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,  0,  0,  0]

l9 = [0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,  0,  0,  0]
r9 = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,  0,  0,  0]
w9 = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,  0,  0,  0]

l10 = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,  0,  0]
r10 = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,  0,  0]
w10 = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,  0,  0]

l11 = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,  0,  0]
r11 = [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,  0,  0]
w11 = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,  1,  0]

l12 = [0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,  1,  0]
r12 = [1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,  0,  0]
w12 = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,  0,  1]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment