* initial version of base_sum_gate * add recursive circuit benchmark files * added step circuit data and contant gate test * moved step testing data into gate_testing_utils * added test case for basesum gate * added test for arithmetic_gatemain
@ -0,0 +1,54 @@ |
|||
package plonky2_verifier |
|||
|
|||
import ( |
|||
"errors" |
|||
"fmt" |
|||
. "gnark-plonky2-verifier/field" |
|||
"testing" |
|||
|
|||
"github.com/consensys/gnark/frontend" |
|||
"github.com/consensys/gnark/test" |
|||
) |
|||
|
|||
type TestArithmeticGateCircuit struct{} |
|||
|
|||
func (circuit *TestArithmeticGateCircuit) Define(api frontend.API) error { |
|||
commonCircuitData := DeserializeCommonCircuitData("./data/step/common_circuit_data.json") |
|||
numSelectors := len(commonCircuitData.SelectorsInfo.groups) |
|||
|
|||
fieldAPI := NewFieldAPI(api) |
|||
qeAPI := NewQuadraticExtensionAPI(fieldAPI, commonCircuitData.DegreeBits) |
|||
plonkChip := NewPlonkChip(api, qeAPI, commonCircuitData) |
|||
|
|||
arithmeticGate := ArithmeticGate{numOps: 20} |
|||
vars := EvaluationVars{localConstants: localConstants[numSelectors:], localWires: localWires, publicInputsHash: publicInputsHash} |
|||
|
|||
constraints := arithmeticGate.EvalUnfiltered(plonkChip, vars) |
|||
|
|||
if len(constraints) != len(arithmeticGateExpectedConstraints) { |
|||
return errors.New("arithmetic gate constraints length mismatch") |
|||
} |
|||
|
|||
for i := 0; i < len(constraints); i++ { |
|||
fmt.Printf("constraints[%d] = %v\n", i, constraints[i]) |
|||
} |
|||
|
|||
for i := 0; i < len(constraints); i++ { |
|||
qeAPI.AssertIsEqual(constraints[i], arithmeticGateExpectedConstraints[i]) |
|||
} |
|||
|
|||
return nil |
|||
} |
|||
|
|||
func TestArithmeticGate(t *testing.T) { |
|||
assert := test.NewAssert(t) |
|||
|
|||
testCase := func() { |
|||
circuit := TestArithmeticGateCircuit{} |
|||
witness := TestArithmeticGateCircuit{} |
|||
err := test.IsSolved(&circuit, &witness, TEST_CURVE.ScalarField()) |
|||
assert.NoError(err) |
|||
} |
|||
|
|||
testCase() |
|||
} |
@ -0,0 +1,64 @@ |
|||
package plonky2_verifier |
|||
|
|||
import ( |
|||
"fmt" |
|||
. "gnark-plonky2-verifier/field" |
|||
) |
|||
|
|||
const ( |
|||
WIRE_SUM = 0 |
|||
START_LIMBS = 1 |
|||
) |
|||
|
|||
type BaseSumGate struct { |
|||
numLimbs uint64 |
|||
base uint64 |
|||
} |
|||
|
|||
func NewBaseSumGate(numLimbs uint64, base uint64) *BaseSumGate { |
|||
return &BaseSumGate{ |
|||
numLimbs: numLimbs, |
|||
base: base, |
|||
} |
|||
} |
|||
|
|||
func (g *BaseSumGate) Id() string { |
|||
return fmt.Sprintf("BaseSumGate { num_ops: %d } + Base: %d", g.numLimbs, g.base) |
|||
} |
|||
|
|||
func (g *BaseSumGate) limbs() []uint64 { |
|||
limbIndices := make([]uint64, g.numLimbs) |
|||
for i := uint64(0); i < g.numLimbs; i++ { |
|||
limbIndices[i] = uint64(START_LIMBS + i) |
|||
} |
|||
|
|||
return limbIndices |
|||
} |
|||
|
|||
func (g *BaseSumGate) EvalUnfiltered(p *PlonkChip, vars EvaluationVars) []QuadraticExtension { |
|||
sum := vars.localWires[WIRE_SUM] |
|||
limbs := make([]QuadraticExtension, g.numLimbs) |
|||
limbIndices := g.limbs() |
|||
for i, limbIdx := range limbIndices { |
|||
limbs[i] = vars.localWires[limbIdx] |
|||
} |
|||
|
|||
base_qe := p.qeAPI.FieldToQE(NewFieldElement(g.base)) |
|||
computedSum := p.qeAPI.ReduceWithPowers( |
|||
limbs, |
|||
base_qe, |
|||
) |
|||
|
|||
var constraints []QuadraticExtension |
|||
constraints = append(constraints, p.qeAPI.SubExtension(computedSum, sum)) |
|||
for _, limb := range limbs { |
|||
acc := p.qeAPI.ONE_QE |
|||
for i := uint64(0); i < g.base; i++ { |
|||
difference := p.qeAPI.SubExtension(limb, p.qeAPI.FieldToQE(NewFieldElement(i))) |
|||
acc = p.qeAPI.MulExtension(acc, difference) |
|||
} |
|||
constraints = append(constraints, acc) |
|||
} |
|||
|
|||
return constraints |
|||
} |
@ -0,0 +1,49 @@ |
|||
package plonky2_verifier |
|||
|
|||
import ( |
|||
"errors" |
|||
. "gnark-plonky2-verifier/field" |
|||
"testing" |
|||
|
|||
"github.com/consensys/gnark/frontend" |
|||
"github.com/consensys/gnark/test" |
|||
) |
|||
|
|||
type TestBaseSumGateCircuit struct{} |
|||
|
|||
func (circuit *TestBaseSumGateCircuit) Define(api frontend.API) error { |
|||
commonCircuitData := DeserializeCommonCircuitData("./data/step/common_circuit_data.json") |
|||
numSelectors := len(commonCircuitData.SelectorsInfo.groups) |
|||
|
|||
fieldAPI := NewFieldAPI(api) |
|||
qeAPI := NewQuadraticExtensionAPI(fieldAPI, commonCircuitData.DegreeBits) |
|||
plonkChip := NewPlonkChip(api, qeAPI, commonCircuitData) |
|||
|
|||
baseSumGate := BaseSumGate{numLimbs: 32, base: 2} |
|||
vars := EvaluationVars{localConstants: localConstants[numSelectors:], localWires: localWires, publicInputsHash: publicInputsHash} |
|||
|
|||
constraints := baseSumGate.EvalUnfiltered(plonkChip, vars) |
|||
|
|||
if len(constraints) != len(baseSumGateExpectedConstraints) { |
|||
return errors.New("constant gate constraints length mismatch") |
|||
} |
|||
|
|||
for i := 0; i < len(constraints); i++ { |
|||
qeAPI.AssertIsEqual(constraints[i], baseSumGateExpectedConstraints[i]) |
|||
} |
|||
|
|||
return nil |
|||
} |
|||
|
|||
func TestBaseSumGate(t *testing.T) { |
|||
assert := test.NewAssert(t) |
|||
|
|||
testCase := func() { |
|||
circuit := TestBaseSumGateCircuit{} |
|||
witness := TestBaseSumGateCircuit{} |
|||
err := test.IsSolved(&circuit, &witness, TEST_CURVE.ScalarField()) |
|||
assert.NoError(err) |
|||
} |
|||
|
|||
testCase() |
|||
} |
@ -0,0 +1,49 @@ |
|||
package plonky2_verifier |
|||
|
|||
import ( |
|||
"errors" |
|||
. "gnark-plonky2-verifier/field" |
|||
"testing" |
|||
|
|||
"github.com/consensys/gnark/frontend" |
|||
"github.com/consensys/gnark/test" |
|||
) |
|||
|
|||
type TestConstantGateCircuit struct{} |
|||
|
|||
func (circuit *TestConstantGateCircuit) Define(api frontend.API) error { |
|||
commonCircuitData := DeserializeCommonCircuitData("./data/step/common_circuit_data.json") |
|||
numSelectors := len(commonCircuitData.SelectorsInfo.groups) |
|||
|
|||
fieldAPI := NewFieldAPI(api) |
|||
qeAPI := NewQuadraticExtensionAPI(fieldAPI, commonCircuitData.DegreeBits) |
|||
plonkChip := NewPlonkChip(api, qeAPI, commonCircuitData) |
|||
|
|||
constantGate := ConstantGate{numConsts: 2} |
|||
vars := EvaluationVars{localConstants: localConstants[numSelectors:], localWires: localWires, publicInputsHash: publicInputsHash} |
|||
|
|||
constraints := constantGate.EvalUnfiltered(plonkChip, vars) |
|||
|
|||
if len(constraints) != len(constantGateExpectedConstraints) { |
|||
return errors.New("constant gate constraints length mismatch") |
|||
} |
|||
|
|||
for i := 0; i < len(constraints); i++ { |
|||
qeAPI.AssertIsEqual(constraints[i], constantGateExpectedConstraints[i]) |
|||
} |
|||
|
|||
return nil |
|||
} |
|||
|
|||
func TestConstantGate(t *testing.T) { |
|||
assert := test.NewAssert(t) |
|||
|
|||
testCase := func() { |
|||
circuit := TestConstantGateCircuit{} |
|||
witness := TestConstantGateCircuit{} |
|||
err := test.IsSolved(&circuit, &witness, TEST_CURVE.ScalarField()) |
|||
assert.NoError(err) |
|||
} |
|||
|
|||
testCase() |
|||
} |
@ -0,0 +1,173 @@ |
|||
{ |
|||
"config": { |
|||
"num_wires": 135, |
|||
"num_routed_wires": 80, |
|||
"num_constants": 2, |
|||
"use_base_arithmetic_gate": true, |
|||
"security_bits": 100, |
|||
"num_challenges": 2, |
|||
"zero_knowledge": false, |
|||
"max_quotient_degree_factor": 8, |
|||
"fri_config": { |
|||
"rate_bits": 3, |
|||
"cap_height": 4, |
|||
"proof_of_work_bits": 16, |
|||
"reduction_strategy": { |
|||
"ConstantArityBits": [ |
|||
4, |
|||
5 |
|||
] |
|||
}, |
|||
"num_query_rounds": 28 |
|||
} |
|||
}, |
|||
"fri_params": { |
|||
"config": { |
|||
"rate_bits": 3, |
|||
"cap_height": 4, |
|||
"proof_of_work_bits": 16, |
|||
"reduction_strategy": { |
|||
"ConstantArityBits": [ |
|||
4, |
|||
5 |
|||
] |
|||
}, |
|||
"num_query_rounds": 28 |
|||
}, |
|||
"hiding": false, |
|||
"degree_bits": 12, |
|||
"reduction_arity_bits": [ |
|||
4, |
|||
4 |
|||
] |
|||
}, |
|||
"gates": [ |
|||
"NoopGate", |
|||
"PublicInputGate", |
|||
"BaseSumGate { num_limbs: 63 } + Base: 2", |
|||
"ReducingExtensionGate { num_coeffs: 32 }", |
|||
"ReducingGate { num_coeffs: 43 }", |
|||
"ArithmeticExtensionGate { num_ops: 10 }", |
|||
"ArithmeticGate { num_ops: 20 }", |
|||
"MulExtensionGate { num_ops: 13 }", |
|||
"RandomAccessGate { bits: 4, num_copies: 4, num_extra_constants: 2, _phantom: PhantomData<plonky2_field::goldilocks_field::GoldilocksField> }<D=2>", |
|||
"CosetInterpolationGate { subgroup_bits: 4, degree: 6, barycentric_weights: [17293822565076172801, 18374686475376656385, 18446744069413535745, 281474976645120, 17592186044416, 256, 18446744000695107601, 18446744065119617025, 1152921504338411520, 72057594037927936, 1048576, 18446462594437939201, 18446726477228539905, 18446744069414584065, 68719476720, 4294967296], _phantom: PhantomData<plonky2_field::goldilocks_field::GoldilocksField> }<D=2>", |
|||
"PoseidonGate(PhantomData<plonky2_field::goldilocks_field::GoldilocksField>)<WIDTH=12>" |
|||
], |
|||
"selectors_info": { |
|||
"selector_indices": [ |
|||
0, |
|||
0, |
|||
0, |
|||
0, |
|||
0, |
|||
0, |
|||
1, |
|||
1, |
|||
1, |
|||
2, |
|||
2 |
|||
], |
|||
"groups": [ |
|||
{ |
|||
"start": 0, |
|||
"end": 6 |
|||
}, |
|||
{ |
|||
"start": 6, |
|||
"end": 9 |
|||
}, |
|||
{ |
|||
"start": 9, |
|||
"end": 11 |
|||
} |
|||
] |
|||
}, |
|||
"quotient_degree_factor": 8, |
|||
"num_gate_constraints": 123, |
|||
"num_constants": 5, |
|||
"num_public_inputs": 0, |
|||
"k_is": [ |
|||
1, |
|||
7, |
|||
49, |
|||
343, |
|||
2401, |
|||
16807, |
|||
117649, |
|||
823543, |
|||
5764801, |
|||
40353607, |
|||
282475249, |
|||
1977326743, |
|||
13841287201, |
|||
96889010407, |
|||
678223072849, |
|||
4747561509943, |
|||
33232930569601, |
|||
232630513987207, |
|||
1628413597910449, |
|||
11398895185373143, |
|||
79792266297612001, |
|||
558545864083284007, |
|||
3909821048582988049, |
|||
8922003270666332022, |
|||
7113790686420571191, |
|||
12903046666114829695, |
|||
16534350385145470581, |
|||
5059988279530788141, |
|||
16973173887300932666, |
|||
8131752794619022736, |
|||
1582037354089406189, |
|||
11074261478625843323, |
|||
3732854072722565977, |
|||
7683234439643377518, |
|||
16889152938674473984, |
|||
7543606154233811962, |
|||
15911754940807515092, |
|||
701820169165099718, |
|||
4912741184155698026, |
|||
15942444219675301861, |
|||
916645121239607101, |
|||
6416515848677249707, |
|||
8022122801911579307, |
|||
814627405137302186, |
|||
5702391835961115302, |
|||
3023254712898638472, |
|||
2716038920875884983, |
|||
565528376716610560, |
|||
3958698637016273920, |
|||
9264146389699333119, |
|||
9508792519651578870, |
|||
11221315429317299127, |
|||
4762231727562756605, |
|||
14888878023524711914, |
|||
11988425817600061793, |
|||
10132004445542095267, |
|||
15583798910550913906, |
|||
16852872026783475737, |
|||
7289639770996824233, |
|||
14133990258148600989, |
|||
6704211459967285318, |
|||
10035992080941828584, |
|||
14911712358349047125, |
|||
12148266161370408270, |
|||
11250886851934520606, |
|||
4969231685883306958, |
|||
16337877731768564385, |
|||
3684679705892444769, |
|||
7346013871832529062, |
|||
14528608963998534792, |
|||
9466542400916821939, |
|||
10925564598174000610, |
|||
2691975909559666986, |
|||
397087297503084581, |
|||
2779611082521592067, |
|||
1010533508236560148, |
|||
7073734557655921036, |
|||
12622653764762278610, |
|||
14571600075677612986, |
|||
9767480182670369297 |
|||
], |
|||
"num_partial_products": 9 |
|||
} |
@ -0,0 +1,140 @@ |
|||
{ |
|||
"constants_sigmas_cap": [ |
|||
{ |
|||
"elements": [ |
|||
5792880812518408658, |
|||
2007865592137458435, |
|||
5118679776640867091, |
|||
13069431186724985571 |
|||
] |
|||
}, |
|||
{ |
|||
"elements": [ |
|||
620745627896223750, |
|||
11689482378865345226, |
|||
515625484560203909, |
|||
6594700411046985771 |
|||
] |
|||
}, |
|||
{ |
|||
"elements": [ |
|||
4288547219194413000, |
|||
13137436527356415412, |
|||
12622945773280822587, |
|||
650627082873761457 |
|||
] |
|||
}, |
|||
{ |
|||
"elements": [ |
|||
13506996103707830465, |
|||
8679821128676565111, |
|||
4223042913738287628, |
|||
9099197279443824593 |
|||
] |
|||
}, |
|||
{ |
|||
"elements": [ |
|||
14449575924890308633, |
|||
8733833351673036584, |
|||
16541374894852431819, |
|||
9332074455551145433 |
|||
] |
|||
}, |
|||
{ |
|||
"elements": [ |
|||
10076928807302913775, |
|||
3821138534617469739, |
|||
1717959071597020718, |
|||
17760656161674093717 |
|||
] |
|||
}, |
|||
{ |
|||
"elements": [ |
|||
2599426417611084017, |
|||
13871968726722310950, |
|||
1516291378797220061, |
|||
13799666340648349967 |
|||
] |
|||
}, |
|||
{ |
|||
"elements": [ |
|||
12663813165492321869, |
|||
14876506856106059016, |
|||
1242723042851988831, |
|||
2875934737469787816 |
|||
] |
|||
}, |
|||
{ |
|||
"elements": [ |
|||
17378423119286703930, |
|||
11222598627075744078, |
|||
9488528583590922099, |
|||
14157718813638267686 |
|||
] |
|||
}, |
|||
{ |
|||
"elements": [ |
|||
1071412395592558182, |
|||
18101728088624707784, |
|||
3182026360229291426, |
|||
14227530413232734538 |
|||
] |
|||
}, |
|||
{ |
|||
"elements": [ |
|||
726974142246132532, |
|||
15153315199262507247, |
|||
17940113059510197877, |
|||
16772587044853202303 |
|||
] |
|||
}, |
|||
{ |
|||
"elements": [ |
|||
12231534358502296703, |
|||
10511512947619127431, |
|||
16590010230992836643, |
|||
12522924984185338479 |
|||
] |
|||
}, |
|||
{ |
|||
"elements": [ |
|||
8037124124878150231, |
|||
7299067373190351508, |
|||
6928393757878692343, |
|||
14665216450327743533 |
|||
] |
|||
}, |
|||
{ |
|||
"elements": [ |
|||
8476349181260794151, |
|||
2992858515573144844, |
|||
12544833538408559347, |
|||
12322593314271890822 |
|||
] |
|||
}, |
|||
{ |
|||
"elements": [ |
|||
17452538538131258483, |
|||
16559982778748471691, |
|||
7832234514212696397, |
|||
7687737265950783860 |
|||
] |
|||
}, |
|||
{ |
|||
"elements": [ |
|||
5386649132465675374, |
|||
15880918294706587722, |
|||
12305658309516685089, |
|||
1973473830101720437 |
|||
] |
|||
} |
|||
], |
|||
"circuit_digest": { |
|||
"elements": [ |
|||
7986243079228529757, |
|||
6431975618990554147, |
|||
3826625528654889031, |
|||
10807866526356205171 |
|||
] |
|||
} |
|||
} |
@ -0,0 +1,172 @@ |
|||
{ |
|||
"config": { |
|||
"num_wires": 135, |
|||
"num_routed_wires": 80, |
|||
"num_constants": 2, |
|||
"use_base_arithmetic_gate": true, |
|||
"security_bits": 100, |
|||
"num_challenges": 2, |
|||
"zero_knowledge": false, |
|||
"max_quotient_degree_factor": 8, |
|||
"fri_config": { |
|||
"rate_bits": 3, |
|||
"cap_height": 4, |
|||
"proof_of_work_bits": 16, |
|||
"reduction_strategy": { |
|||
"ConstantArityBits": [ |
|||
4, |
|||
5 |
|||
] |
|||
}, |
|||
"num_query_rounds": 2 |
|||
} |
|||
}, |
|||
"fri_params": { |
|||
"config": { |
|||
"rate_bits": 3, |
|||
"cap_height": 4, |
|||
"proof_of_work_bits": 16, |
|||
"reduction_strategy": { |
|||
"ConstantArityBits": [ |
|||
4, |
|||
5 |
|||
] |
|||
}, |
|||
"num_query_rounds": 2 |
|||
}, |
|||
"hiding": false, |
|||
"degree_bits": 9, |
|||
"reduction_arity_bits": [ |
|||
4 |
|||
] |
|||
}, |
|||
"gates": [ |
|||
"NoopGate", |
|||
"ConstantGate { num_consts: 2 }", |
|||
"PublicInputGate", |
|||
"BaseSumGate { num_limbs: 63 } + Base: 2", |
|||
"ReducingExtensionGate { num_coeffs: 32 }", |
|||
"ReducingGate { num_coeffs: 43 }", |
|||
"ArithmeticExtensionGate { num_ops: 10 }", |
|||
"ArithmeticGate { num_ops: 20 }", |
|||
"MulExtensionGate { num_ops: 13 }", |
|||
"RandomAccessGate { bits: 4, num_copies: 4, num_extra_constants: 2, _phantom: PhantomData<plonky2_field::goldilocks_field::GoldilocksField> }<D=2>", |
|||
"PoseidonGate(PhantomData<plonky2_field::goldilocks_field::GoldilocksField>)<WIDTH=12>" |
|||
], |
|||
"selectors_info": { |
|||
"selector_indices": [ |
|||
0, |
|||
0, |
|||
0, |
|||
0, |
|||
0, |
|||
0, |
|||
1, |
|||
1, |
|||
1, |
|||
1, |
|||
2 |
|||
], |
|||
"groups": [ |
|||
{ |
|||
"start": 0, |
|||
"end": 6 |
|||
}, |
|||
{ |
|||
"start": 6, |
|||
"end": 10 |
|||
}, |
|||
{ |
|||
"start": 10, |
|||
"end": 11 |
|||
} |
|||
] |
|||
}, |
|||
"quotient_degree_factor": 8, |
|||
"num_gate_constraints": 123, |
|||
"num_constants": 5, |
|||
"num_public_inputs": 0, |
|||
"k_is": [ |
|||
1, |
|||
7, |
|||
49, |
|||
343, |
|||
2401, |
|||
16807, |
|||
117649, |
|||
823543, |
|||
5764801, |
|||
40353607, |
|||
282475249, |
|||
1977326743, |
|||
13841287201, |
|||
96889010407, |
|||
678223072849, |
|||
4747561509943, |
|||
33232930569601, |
|||
232630513987207, |
|||
1628413597910449, |
|||
11398895185373143, |
|||
79792266297612001, |
|||
558545864083284007, |
|||
3909821048582988049, |
|||
8922003270666332022, |
|||
7113790686420571191, |
|||
12903046666114829695, |
|||
16534350385145470581, |
|||
5059988279530788141, |
|||
16973173887300932666, |
|||
8131752794619022736, |
|||
1582037354089406189, |
|||
11074261478625843323, |
|||
3732854072722565977, |
|||
7683234439643377518, |
|||
16889152938674473984, |
|||
7543606154233811962, |
|||
15911754940807515092, |
|||
701820169165099718, |
|||
4912741184155698026, |
|||
15942444219675301861, |
|||
916645121239607101, |
|||
6416515848677249707, |
|||
8022122801911579307, |
|||
814627405137302186, |
|||
5702391835961115302, |
|||
3023254712898638472, |
|||
2716038920875884983, |
|||
565528376716610560, |
|||
3958698637016273920, |
|||
9264146389699333119, |
|||
9508792519651578870, |
|||
11221315429317299127, |
|||
4762231727562756605, |
|||
14888878023524711914, |
|||
11988425817600061793, |
|||
10132004445542095267, |
|||
15583798910550913906, |
|||
16852872026783475737, |
|||
7289639770996824233, |
|||
14133990258148600989, |
|||
6704211459967285318, |
|||
10035992080941828584, |
|||
14911712358349047125, |
|||
12148266161370408270, |
|||
11250886851934520606, |
|||
4969231685883306958, |
|||
16337877731768564385, |
|||
3684679705892444769, |
|||
7346013871832529062, |
|||
14528608963998534792, |
|||
9466542400916821939, |
|||
10925564598174000610, |
|||
2691975909559666986, |
|||
397087297503084581, |
|||
2779611082521592067, |
|||
1010533508236560148, |
|||
7073734557655921036, |
|||
12622653764762278610, |
|||
14571600075677612986, |
|||
9767480182670369297 |
|||
], |
|||
"num_partial_products": 9 |
|||
} |
@ -0,0 +1,140 @@ |
|||
{ |
|||
"constants_sigmas_cap": [ |
|||
{ |
|||
"elements": [ |
|||
158845205314874220, |
|||
9668380905015929998, |
|||
1411954196422652535, |
|||
16261560315091018602 |
|||
] |
|||
}, |
|||
{ |
|||
"elements": [ |
|||
10819768878069205512, |
|||
10806329121382974236, |
|||
4449962652936030991, |
|||
3437130958683867731 |
|||
] |
|||
}, |
|||
{ |
|||
"elements": [ |
|||
13409308832792573752, |
|||
5142428395608775971, |
|||
8304804561534366563, |
|||
3333782371953158323 |
|||
] |
|||
}, |
|||
{ |
|||
"elements": [ |
|||
18228625912291347825, |
|||
10166925566614695203, |
|||
18158685652491144528, |
|||
5812383934966268838 |
|||
] |
|||
}, |
|||
{ |
|||
"elements": [ |
|||
9826807818157299303, |
|||
16982355347088639655, |
|||
9164194217012055587, |
|||
2807644941373961188 |
|||
] |
|||
}, |
|||
{ |
|||
"elements": [ |
|||
14310741273297755831, |
|||
12981827714166111968, |
|||
4530737992662289685, |
|||
18335773668219568846 |
|||
] |
|||
}, |
|||
{ |
|||
"elements": [ |
|||
7917966912899515534, |
|||
17667717333057450416, |
|||
952641997971486450, |
|||
428804504796282154 |
|||
] |
|||
}, |
|||
{ |
|||
"elements": [ |
|||
6150969121154358920, |
|||
8533162538572915310, |
|||
13902780732405127329, |
|||
10048329503515769882 |
|||
] |
|||
}, |
|||
{ |
|||
"elements": [ |
|||
17799006350046251788, |
|||
10571037994954145577, |
|||
16382491710544403234, |
|||
8887053452984223370 |
|||
] |
|||
}, |
|||
{ |
|||
"elements": [ |
|||
3963886065503765705, |
|||
2739764768577488879, |
|||
5343505536176223500, |
|||
9151432391854309795 |
|||
] |
|||
}, |
|||
{ |
|||
"elements": [ |
|||
4165310799113686308, |
|||
10915634867031695254, |
|||
5813235613342911366, |
|||
17907275021812350449 |
|||
] |
|||
}, |
|||
{ |
|||
"elements": [ |
|||
12954911538188629834, |
|||
6738667513261916639, |
|||
12025960525821021496, |
|||
3765915660295958137 |
|||
] |
|||
}, |
|||
{ |
|||
"elements": [ |
|||
15699732256890621800, |
|||
14355912053969064032, |
|||
9559845752177194786, |
|||
6008684051170164157 |
|||
] |
|||
}, |
|||
{ |
|||
"elements": [ |
|||
5973104887002336129, |
|||
15822297470108300955, |
|||
1285855046140391788, |
|||
8567304882129939594 |
|||
] |
|||
}, |
|||
{ |
|||
"elements": [ |
|||
531701086966465293, |
|||
13988001761158611208, |
|||
10640541520023034000, |
|||
12368315472470450606 |
|||
] |
|||
}, |
|||
{ |
|||
"elements": [ |
|||
16726108137472169650, |
|||
9400941780708454743, |
|||
2656080070909638220, |
|||
10262921538692249992 |
|||
] |
|||
} |
|||
], |
|||
"circuit_digest": { |
|||
"elements": [ |
|||
7291397556757192596, |
|||
149044718719699113, |
|||
14214393601687894808, |
|||
15901190186686913364 |
|||
] |
|||
} |
|||
} |
@ -0,0 +1,205 @@ |
|||
{ |
|||
"config": { |
|||
"num_wires": 136, |
|||
"num_routed_wires": 80, |
|||
"num_constants": 2, |
|||
"use_base_arithmetic_gate": true, |
|||
"security_bits": 100, |
|||
"num_challenges": 2, |
|||
"zero_knowledge": false, |
|||
"max_quotient_degree_factor": 8, |
|||
"fri_config": { |
|||
"rate_bits": 3, |
|||
"cap_height": 4, |
|||
"proof_of_work_bits": 16, |
|||
"reduction_strategy": { |
|||
"ConstantArityBits": [ |
|||
4, |
|||
5 |
|||
] |
|||
}, |
|||
"num_query_rounds": 28 |
|||
} |
|||
}, |
|||
"fri_params": { |
|||
"config": { |
|||
"rate_bits": 3, |
|||
"cap_height": 4, |
|||
"proof_of_work_bits": 16, |
|||
"reduction_strategy": { |
|||
"ConstantArityBits": [ |
|||
4, |
|||
5 |
|||
] |
|||
}, |
|||
"num_query_rounds": 28 |
|||
}, |
|||
"hiding": false, |
|||
"degree_bits": 21, |
|||
"reduction_arity_bits": [ |
|||
4, |
|||
4, |
|||
4, |
|||
4 |
|||
] |
|||
}, |
|||
"gates": [ |
|||
"NoopGate", |
|||
"ConstantGate { num_consts: 2 }", |
|||
"PublicInputGate", |
|||
"BaseSumGate { num_limbs: 32 } + Base: 2", |
|||
"BaseSumGate { num_limbs: 63 } + Base: 2", |
|||
"ArithmeticGate { num_ops: 20 }", |
|||
"RandomAccessGate { bits: 2, num_copies: 13, num_extra_constants: 2, _phantom: PhantomData<plonky2_field::goldilocks_field::GoldilocksField> }<D=2>", |
|||
"XOR3Gate { num_xors: 16 }", |
|||
"BaseSumGate { num_limbs: 16 } + Base: 4", |
|||
"ComparisonGate { num_bits: 32, num_chunks: 16, _phantom: PhantomData<plonky2_field::goldilocks_field::GoldilocksField> }<D=2>", |
|||
"U32AddManyGate { num_addends: 11, num_ops: 4, _phantom: PhantomData<plonky2_field::goldilocks_field::GoldilocksField> }", |
|||
"U32AddManyGate { num_addends: 13, num_ops: 4, _phantom: PhantomData<plonky2_field::goldilocks_field::GoldilocksField> }", |
|||
"U32AddManyGate { num_addends: 15, num_ops: 3, _phantom: PhantomData<plonky2_field::goldilocks_field::GoldilocksField> }", |
|||
"U32AddManyGate { num_addends: 16, num_ops: 3, _phantom: PhantomData<plonky2_field::goldilocks_field::GoldilocksField> }", |
|||
"U32AddManyGate { num_addends: 3, num_ops: 5, _phantom: PhantomData<plonky2_field::goldilocks_field::GoldilocksField> }", |
|||
"U32AddManyGate { num_addends: 5, num_ops: 5, _phantom: PhantomData<plonky2_field::goldilocks_field::GoldilocksField> }", |
|||
"U32AddManyGate { num_addends: 7, num_ops: 4, _phantom: PhantomData<plonky2_field::goldilocks_field::GoldilocksField> }", |
|||
"U32AddManyGate { num_addends: 9, num_ops: 4, _phantom: PhantomData<plonky2_field::goldilocks_field::GoldilocksField> }", |
|||
"U32ArithmeticGate { num_ops: 3, _phantom: PhantomData<plonky2_field::goldilocks_field::GoldilocksField> }", |
|||
"U32RangeCheckGate { num_input_limbs: 8, _phantom: PhantomData<plonky2_field::goldilocks_field::GoldilocksField> }", |
|||
"U32SubtractionGate { num_ops: 6, _phantom: PhantomData<plonky2_field::goldilocks_field::GoldilocksField> }", |
|||
"RandomAccessGate { bits: 4, num_copies: 4, num_extra_constants: 2, _phantom: PhantomData<plonky2_field::goldilocks_field::GoldilocksField> }<D=2>" |
|||
], |
|||
"selectors_info": { |
|||
"selector_indices": [ |
|||
0, |
|||
0, |
|||
0, |
|||
0, |
|||
0, |
|||
0, |
|||
1, |
|||
1, |
|||
1, |
|||
1, |
|||
1, |
|||
2, |
|||
2, |
|||
2, |
|||
2, |
|||
2, |
|||
3, |
|||
3, |
|||
3, |
|||
3, |
|||
3, |
|||
4 |
|||
], |
|||
"groups": [ |
|||
{ |
|||
"start": 0, |
|||
"end": 6 |
|||
}, |
|||
{ |
|||
"start": 6, |
|||
"end": 11 |
|||
}, |
|||
{ |
|||
"start": 11, |
|||
"end": 16 |
|||
}, |
|||
{ |
|||
"start": 16, |
|||
"end": 21 |
|||
}, |
|||
{ |
|||
"start": 21, |
|||
"end": 22 |
|||
} |
|||
] |
|||
}, |
|||
"quotient_degree_factor": 8, |
|||
"num_gate_constraints": 136, |
|||
"num_constants": 7, |
|||
"num_public_inputs": 0, |
|||
"k_is": [ |
|||
1, |
|||
7, |
|||
49, |
|||
343, |
|||
2401, |
|||
16807, |
|||
117649, |
|||
823543, |
|||
5764801, |
|||
40353607, |
|||
282475249, |
|||
1977326743, |
|||
13841287201, |
|||
96889010407, |
|||
678223072849, |
|||
4747561509943, |
|||
33232930569601, |
|||
232630513987207, |
|||
1628413597910449, |
|||
11398895185373143, |
|||
79792266297612001, |
|||
558545864083284007, |
|||
3909821048582988049, |
|||
8922003270666332022, |
|||
7113790686420571191, |
|||
12903046666114829695, |
|||
16534350385145470581, |
|||
5059988279530788141, |
|||
16973173887300932666, |
|||
8131752794619022736, |
|||
1582037354089406189, |
|||
11074261478625843323, |
|||
3732854072722565977, |
|||
7683234439643377518, |
|||
16889152938674473984, |
|||
7543606154233811962, |
|||
15911754940807515092, |
|||
701820169165099718, |
|||
4912741184155698026, |
|||
15942444219675301861, |
|||
916645121239607101, |
|||
6416515848677249707, |
|||
8022122801911579307, |
|||
814627405137302186, |
|||
5702391835961115302, |
|||
3023254712898638472, |
|||
2716038920875884983, |
|||
565528376716610560, |
|||
3958698637016273920, |
|||
9264146389699333119, |
|||
9508792519651578870, |
|||
11221315429317299127, |
|||
4762231727562756605, |
|||
14888878023524711914, |
|||
11988425817600061793, |
|||
10132004445542095267, |
|||
15583798910550913906, |
|||
16852872026783475737, |
|||
7289639770996824233, |
|||
14133990258148600989, |
|||
6704211459967285318, |
|||
10035992080941828584, |
|||
14911712358349047125, |
|||
12148266161370408270, |
|||
11250886851934520606, |
|||
4969231685883306958, |
|||
16337877731768564385, |
|||
3684679705892444769, |
|||
7346013871832529062, |
|||
14528608963998534792, |
|||
9466542400916821939, |
|||
10925564598174000610, |
|||
2691975909559666986, |
|||
397087297503084581, |
|||
2779611082521592067, |
|||
1010533508236560148, |
|||
7073734557655921036, |
|||
12622653764762278610, |
|||
14571600075677612986, |
|||
9767480182670369297 |
|||
], |
|||
"num_partial_products": 9 |
|||
} |
@ -0,0 +1,140 @@ |
|||
{ |
|||
"constants_sigmas_cap": [ |
|||
{ |
|||
"elements": [ |
|||
9037422181318074482, |
|||
13844553280258601189, |
|||
14013690396566737561, |
|||
14600533186953608428 |
|||
] |
|||
}, |
|||
{ |
|||
"elements": [ |
|||
3891365497285560518, |
|||
6785071445101560305, |
|||
7146616719154245281, |
|||
8484433928946731576 |
|||
] |
|||
}, |
|||
{ |
|||
"elements": [ |
|||
15935467950899360740, |
|||
1041659913562170406, |
|||
11898906592313038819, |
|||
7940456224436700998 |
|||
] |
|||
}, |
|||
{ |
|||
"elements": [ |
|||
17420135248456983, |
|||
10686061014804565544, |
|||
17782021355470763205, |
|||
12726022340820773339 |
|||
] |
|||
}, |
|||
{ |
|||
"elements": [ |
|||
13322967402317526249, |
|||
12119892482906381301, |
|||
1483851501277040422, |
|||
17519911664522741561 |
|||
] |
|||
}, |
|||
{ |
|||
"elements": [ |
|||
3901474702590233137, |
|||
16494478574194405372, |
|||
3644962804006307872, |
|||
7967195830112920768 |
|||
] |
|||
}, |
|||
{ |
|||
"elements": [ |
|||
15532816309418050992, |
|||
11198055639421810456, |
|||
7449000032233257165, |
|||
6080646728225911938 |
|||
] |
|||
}, |
|||
{ |
|||
"elements": [ |
|||
7944791944524511304, |
|||
15470849481646525511, |
|||
11102721978231118523, |
|||
10011467322465036320 |
|||
] |
|||
}, |
|||
{ |
|||
"elements": [ |
|||
14679375199524381062, |
|||
9219647684485300612, |
|||
8902882543708912876, |
|||
6737676211275058717 |
|||
] |
|||
}, |
|||
{ |
|||
"elements": [ |
|||
15215848762718399329, |
|||
9538467614418882672, |
|||
7337952705707955964, |
|||
17932579689749986997 |
|||
] |
|||
}, |
|||
{ |
|||
"elements": [ |
|||
3111383469397480110, |
|||
17276616486884637185, |
|||
10511216595022742027, |
|||
3343575652946909638 |
|||
] |
|||
}, |
|||
{ |
|||
"elements": [ |
|||
2417848701164748156, |
|||
7846191940051381446, |
|||
4363725272084187306, |
|||
3143323624098735830 |
|||
] |
|||
}, |
|||
{ |
|||
"elements": [ |
|||
7639597922146523429, |
|||
14015537888097194053, |
|||
10449936634441844342, |
|||
3897071524048579556 |
|||
] |
|||
}, |
|||
{ |
|||
"elements": [ |
|||
12445360068819311840, |
|||
4910166437012489060, |
|||
9670875686931891121, |
|||
5569206524147441284 |
|||
] |
|||
}, |
|||
{ |
|||
"elements": [ |
|||
6965775890897127688, |
|||
14853930701622190781, |
|||
2643689027677976461, |
|||
1883768007952536249 |
|||
] |
|||
}, |
|||
{ |
|||
"elements": [ |
|||
6771363979354677578, |
|||
6567107174924251028, |
|||
15758449129319031800, |
|||
6619880945043941329 |
|||
] |
|||
} |
|||
], |
|||
"circuit_digest": { |
|||
"elements": [ |
|||
8574090053162898339, |
|||
2808971464690312489, |
|||
14807704193989191909, |
|||
14951686172889873386 |
|||
] |
|||
} |
|||
} |
@ -0,0 +1,220 @@ |
|||
package plonky2_verifier |
|||
|
|||
import ( |
|||
. "gnark-plonky2-verifier/field" |
|||
) |
|||
|
|||
var localConstants = []QuadraticExtension{ |
|||
{NewFieldElement(14938388220067017512), NewFieldElement(6893617978345561255)}, |
|||
{NewFieldElement(2858278997849927318), NewFieldElement(14613858972289114497)}, |
|||
{NewFieldElement(12010705804054043554), NewFieldElement(17734088886423096402)}, |
|||
{NewFieldElement(6471692081681050808), NewFieldElement(18106394403447308154)}, |
|||
{NewFieldElement(12558554458272921972), NewFieldElement(2216637096996035026)}, |
|||
{NewFieldElement(2742311400964131460), NewFieldElement(9282906066726805869)}, |
|||
{NewFieldElement(6596410029573254275), NewFieldElement(10257498171037842553)}, |
|||
} |
|||
|
|||
var localWires = []QuadraticExtension{ |
|||
{NewFieldElement(2324480063341987239), NewFieldElement(988591962437064919)}, |
|||
{NewFieldElement(14688677982646642822), NewFieldElement(8146247054257470414)}, |
|||
{NewFieldElement(17333596212120632616), NewFieldElement(8229773878724567671)}, |
|||
{NewFieldElement(16821804945910820925), NewFieldElement(12343335221440433490)}, |
|||
{NewFieldElement(2756227950103887825), NewFieldElement(343560939592426117)}, |
|||
{NewFieldElement(16596623007682686427), NewFieldElement(16182492379544649001)}, |
|||
{NewFieldElement(11316887259286577994), NewFieldElement(5467115228713222299)}, |
|||
{NewFieldElement(1582490957227381752), NewFieldElement(6925101494868390621)}, |
|||
{NewFieldElement(17935248409332290352), NewFieldElement(12534157394828412916)}, |
|||
{NewFieldElement(1232026497545098356), NewFieldElement(14048694225063532055)}, |
|||
{NewFieldElement(11979806059027179452), NewFieldElement(17007628877389084459)}, |
|||
{NewFieldElement(6185211824111055171), NewFieldElement(11113325383534952676)}, |
|||
{NewFieldElement(5285260129504523793), NewFieldElement(2234312045539869327)}, |
|||
{NewFieldElement(5097097637012137260), NewFieldElement(6201025554481621574)}, |
|||
{NewFieldElement(6037242957330965254), NewFieldElement(8600833538151893000)}, |
|||
{NewFieldElement(1840669856531831838), NewFieldElement(15065652255235975922)}, |
|||
{NewFieldElement(12697827657439264676), NewFieldElement(8513261715427030745)}, |
|||
{NewFieldElement(17293199904676005799), NewFieldElement(3250033655198439882)}, |
|||
{NewFieldElement(15670279238000114139), NewFieldElement(2873593865532946130)}, |
|||
{NewFieldElement(8233044221496845350), NewFieldElement(7769536024141251466)}, |
|||
{NewFieldElement(7276958187322513627), NewFieldElement(1860660389845587459)}, |
|||
{NewFieldElement(9589532469937976759), NewFieldElement(7590567423994010364)}, |
|||
{NewFieldElement(16188252206420308967), NewFieldElement(1215332132961798729)}, |
|||
{NewFieldElement(4284385291851770933), NewFieldElement(8054708369354118180)}, |
|||
{NewFieldElement(951064484118793750), NewFieldElement(14928634967654532194)}, |
|||
{NewFieldElement(5756940583948879782), NewFieldElement(16919129773187566805)}, |
|||
{NewFieldElement(14616825313554663172), NewFieldElement(14608067953510361893)}, |
|||
{NewFieldElement(2218969368435230247), NewFieldElement(8314107073610762130)}, |
|||
{NewFieldElement(2846464114111699115), NewFieldElement(1739645682168118162)}, |
|||
{NewFieldElement(9428678995108626933), NewFieldElement(18300292734756419913)}, |
|||
{NewFieldElement(17837447932135148748), NewFieldElement(16963062756757640776)}, |
|||
{NewFieldElement(15769972692897111778), NewFieldElement(11937356836123640190)}, |
|||
{NewFieldElement(8427612563992716672), NewFieldElement(6338936101976157422)}, |
|||
{NewFieldElement(8087028861430760589), NewFieldElement(15904493721713953322)}, |
|||
{NewFieldElement(16852312552899313453), NewFieldElement(12703698940483431753)}, |
|||
{NewFieldElement(9385581021480003680), NewFieldElement(16428288666295194603)}, |
|||
{NewFieldElement(17228209431960982877), NewFieldElement(7918190884273718559)}, |
|||
{NewFieldElement(3132939554659874022), NewFieldElement(14065724777617623144)}, |
|||
{NewFieldElement(1997749289316112361), NewFieldElement(9278657719821874692)}, |
|||
{NewFieldElement(11261631966308838097), NewFieldElement(17864868364492856478)}, |
|||
{NewFieldElement(6870413790049792873), NewFieldElement(7958529866191467568)}, |
|||
{NewFieldElement(3285486169947371103), NewFieldElement(13432787563835021279)}, |
|||
{NewFieldElement(15050449752793271273), NewFieldElement(18354035013159256035)}, |
|||
{NewFieldElement(13156406563219393216), NewFieldElement(2811064537112579464)}, |
|||
{NewFieldElement(152960041933474907), NewFieldElement(1638753743319968389)}, |
|||
{NewFieldElement(319825484888354934), NewFieldElement(9316401211755928943)}, |
|||
{NewFieldElement(16408408071810237531), NewFieldElement(18410352386107353801)}, |
|||
{NewFieldElement(11721234235617526034), NewFieldElement(15999840912099509122)}, |
|||
{NewFieldElement(6334230580789589688), NewFieldElement(14426162209351753421)}, |
|||
{NewFieldElement(958567038590387846), NewFieldElement(8029518124072166613)}, |
|||
{NewFieldElement(14177438370769025330), NewFieldElement(16473317446385361345)}, |
|||
{NewFieldElement(15581189373117842086), NewFieldElement(5900338653012073386)}, |
|||
{NewFieldElement(8240400515986653624), NewFieldElement(14185121622736441262)}, |
|||
{NewFieldElement(6679588999186450167), NewFieldElement(7128455250623622155)}, |
|||
{NewFieldElement(16252662677474545634), NewFieldElement(11498423056076196888)}, |
|||
{NewFieldElement(15806801790824973416), NewFieldElement(2139294885746295937)}, |
|||
{NewFieldElement(2686237135450455588), NewFieldElement(11560495253516227160)}, |
|||
{NewFieldElement(10794154831626450247), NewFieldElement(14846136074280133457)}, |
|||
{NewFieldElement(10904017069956482237), NewFieldElement(16678728929164911588)}, |
|||
{NewFieldElement(77097765992419633), NewFieldElement(6037802885211793535)}, |
|||
{NewFieldElement(2948949654471962353), NewFieldElement(2821197372203299784)}, |
|||
{NewFieldElement(11058031646382030618), NewFieldElement(14661594862905661700)}, |
|||
{NewFieldElement(12154711323908739968), NewFieldElement(16167190320499561302)}, |
|||
{NewFieldElement(7860977505669195590), NewFieldElement(13935954304018092783)}, |
|||
{NewFieldElement(18189874348209070279), NewFieldElement(11538053105967940289)}, |
|||
{NewFieldElement(11425397866380016050), NewFieldElement(3629278068857786221)}, |
|||
{NewFieldElement(14222050824749623144), NewFieldElement(15140845573600227476)}, |
|||
{NewFieldElement(11344695042959853614), NewFieldElement(2169085408567386370)}, |
|||
{NewFieldElement(1382814149657132134), NewFieldElement(1236079356280021064)}, |
|||
{NewFieldElement(17447449634981200877), NewFieldElement(4036324561038142974)}, |
|||
{NewFieldElement(11667566735027246199), NewFieldElement(7504612499562579295)}, |
|||
{NewFieldElement(8096661641373469320), NewFieldElement(17495789134569173932)}, |
|||
{NewFieldElement(9772815018478920866), NewFieldElement(6155533504741603890)}, |
|||
{NewFieldElement(4680980484631369987), NewFieldElement(12005731930547792380)}, |
|||
{NewFieldElement(6030057570246380244), NewFieldElement(1574605083038813985)}, |
|||
{NewFieldElement(6754716419760683051), NewFieldElement(9739266036232852396)}, |
|||
{NewFieldElement(3724513823179248054), NewFieldElement(13013306109228123804)}, |
|||
{NewFieldElement(11890451292401098866), NewFieldElement(16486773210504598590)}, |
|||
{NewFieldElement(15585701182352051988), NewFieldElement(11720999619266399739)}, |
|||
{NewFieldElement(7485278618867936600), NewFieldElement(11145589513887907261)}, |
|||
{NewFieldElement(14193072368816296635), NewFieldElement(7323345281142640608)}, |
|||
{NewFieldElement(17524516352488247889), NewFieldElement(15683878140283813020)}, |
|||
{NewFieldElement(12837567742060157665), NewFieldElement(4718676941458713108)}, |
|||
{NewFieldElement(6217075579383787974), NewFieldElement(6370591763549375649)}, |
|||
{NewFieldElement(8359486437738096506), NewFieldElement(10778994345307569722)}, |
|||
{NewFieldElement(4952581951776675799), NewFieldElement(17817948246329576635)}, |
|||
{NewFieldElement(3976052009388288681), NewFieldElement(17849902626188930996)}, |
|||
{NewFieldElement(17810794672545767939), NewFieldElement(1041595632469164526)}, |
|||
{NewFieldElement(14280479506185077398), NewFieldElement(9432275670660632521)}, |
|||
{NewFieldElement(16096793441725012598), NewFieldElement(14080357378312550361)}, |
|||
{NewFieldElement(2808358450883300976), NewFieldElement(18155683068497079023)}, |
|||
{NewFieldElement(12506615906620507426), NewFieldElement(13547702647793093771)}, |
|||
{NewFieldElement(543665817978834688), NewFieldElement(11749575935793871460)}, |
|||
{NewFieldElement(14472836352047062696), NewFieldElement(12745333723416264174)}, |
|||
{NewFieldElement(12981918713322309538), NewFieldElement(12274815259004888156)}, |
|||
{NewFieldElement(8926153023959879624), NewFieldElement(15612804752658609157)}, |
|||
{NewFieldElement(15470343302949437595), NewFieldElement(11164995109470525521)}, |
|||
{NewFieldElement(10520929231082168869), NewFieldElement(16888496821066277493)}, |
|||
{NewFieldElement(1028056151721181243), NewFieldElement(8120934238589042033)}, |
|||
{NewFieldElement(1810007995141850479), NewFieldElement(2490559022189551873)}, |
|||
{NewFieldElement(1867732552988682347), NewFieldElement(8352749138289783478)}, |
|||
{NewFieldElement(1772251986087179577), NewFieldElement(1151343330961505549)}, |
|||
{NewFieldElement(14295941257654230218), NewFieldElement(8638985198387420860)}, |
|||
{NewFieldElement(582917963870113299), NewFieldElement(13301360102508097820)}, |
|||
{NewFieldElement(18438694801095657876), NewFieldElement(2953322262478232169)}, |
|||
{NewFieldElement(7603887573063566422), NewFieldElement(6091524026276266924)}, |
|||
{NewFieldElement(7184877376568353020), NewFieldElement(5312277526863426709)}, |
|||
{NewFieldElement(4845801136589914168), NewFieldElement(1561342471733565936)}, |
|||
{NewFieldElement(13089468615522535612), NewFieldElement(4057681051840817565)}, |
|||
{NewFieldElement(14153633198781966944), NewFieldElement(11670642633718804558)}, |
|||
{NewFieldElement(16238871251946995480), NewFieldElement(9879378414393071037)}, |
|||
{NewFieldElement(407815114363153064), NewFieldElement(18417737282937069683)}, |
|||
{NewFieldElement(10314092695875136843), NewFieldElement(17129917118418209854)}, |
|||
{NewFieldElement(14435763837662532097), NewFieldElement(4319511190642832713)}, |
|||
{NewFieldElement(11747855857520646712), NewFieldElement(7041602666708225251)}, |
|||
{NewFieldElement(9175192383987399327), NewFieldElement(4409574583823547850)}, |
|||
{NewFieldElement(9548913170337855226), NewFieldElement(4160834878925069440)}, |
|||
{NewFieldElement(965944482423049129), NewFieldElement(14015844569022395350)}, |
|||
{NewFieldElement(17244878179047663844), NewFieldElement(925516683252056953)}, |
|||
{NewFieldElement(11530194255376349088), NewFieldElement(3004909091927990154)}, |
|||
{NewFieldElement(5197253289126122309), NewFieldElement(4693726439926432566)}, |
|||
{NewFieldElement(16039381979512237027), NewFieldElement(8603041366636528085)}, |
|||
{NewFieldElement(6094270808101390314), NewFieldElement(13412584619695658458)}, |
|||
{NewFieldElement(300463888721818101), NewFieldElement(1345726875223674416)}, |
|||
{NewFieldElement(15941208658209056668), NewFieldElement(9615553092932888024)}, |
|||
{NewFieldElement(12935711669717280950), NewFieldElement(1779981135440026594)}, |
|||
{NewFieldElement(1903849940544955596), NewFieldElement(3220793888228552075)}, |
|||
{NewFieldElement(17009281029954729848), NewFieldElement(12717382096012389232)}, |
|||
{NewFieldElement(8308499022107883215), NewFieldElement(7238839475668369173)}, |
|||
{NewFieldElement(4681909377350889716), NewFieldElement(9121889619872786537)}, |
|||
{NewFieldElement(16745334188484332040), NewFieldElement(13880192213923952919)}, |
|||
{NewFieldElement(8275654896887061920), NewFieldElement(5378310777055483996)}, |
|||
{NewFieldElement(2877567868802486135), NewFieldElement(3737222674819658170)}, |
|||
{NewFieldElement(7662876313147287437), NewFieldElement(15849146076823477077)}, |
|||
{NewFieldElement(15996655521860650011), NewFieldElement(10796039480722311424)}, |
|||
{NewFieldElement(3451129575094269729), NewFieldElement(9506170035703226854)}, |
|||
} |
|||
|
|||
var publicInputsHash = Hash{ZERO_F, ZERO_F, ZERO_F, ZERO_F} |
|||
|
|||
var constantGateExpectedConstraints = []QuadraticExtension{ |
|||
{NewFieldElement(417831337622144221), NewFieldElement(8294314104289740950)}, |
|||
{NewFieldElement(10354476116341195774), NewFieldElement(2111251116780372139)}, |
|||
} |
|||
|
|||
var baseSumGateExpectedConstraints = []QuadraticExtension{ |
|||
{NewFieldElement(13342375419378862774), NewFieldElement(2280369543228400622)}, |
|||
{NewFieldElement(4343016273263963301), NewFieldElement(8670112296843354731)}, |
|||
{NewFieldElement(16450085172304373435), NewFieldElement(9474921066378691247)}, |
|||
{NewFieldElement(10825438813181866983), NewFieldElement(4721788102061048468)}, |
|||
{NewFieldElement(2653358151822415377), NewFieldElement(16941658162630334598)}, |
|||
{NewFieldElement(16109827603357243766), NewFieldElement(2469723755597001985)}, |
|||
{NewFieldElement(16092509697995123079), NewFieldElement(15792545805376063500)}, |
|||
{NewFieldElement(18220570683647205186), NewFieldElement(15344882637457318583)}, |
|||
{NewFieldElement(11198665856327480684), NewFieldElement(5553903935302684834)}, |
|||
{NewFieldElement(10482437897580882341), NewFieldElement(8685229612947119045)}, |
|||
{NewFieldElement(4559642503814598145), NewFieldElement(10753102667902815825)}, |
|||
{NewFieldElement(622804064827561260), NewFieldElement(581766069302707440)}, |
|||
{NewFieldElement(18211909441470681488), NewFieldElement(9918892113105798061)}, |
|||
{NewFieldElement(17690944039562025874), NewFieldElement(10477359595782407734)}, |
|||
{NewFieldElement(10779840836031384949), NewFieldElement(5788395352825863117)}, |
|||
{NewFieldElement(16642771945619329948), NewFieldElement(16143638493085149246)}, |
|||
{NewFieldElement(4736242245615047143), NewFieldElement(8163893235093339079)}, |
|||
{NewFieldElement(1094576462017674831), NewFieldElement(174501253315632830)}, |
|||
{NewFieldElement(13301388104345214501), NewFieldElement(10119526634662127335)}, |
|||
{NewFieldElement(8813857633984933142), NewFieldElement(3166911591676225444)}, |
|||
{NewFieldElement(4484502504021732255), NewFieldElement(1409252568845542666)}, |
|||
{NewFieldElement(1370941442659786223), NewFieldElement(17296588456662108571)}, |
|||
{NewFieldElement(4569099382027624816), NewFieldElement(17912433869630853419)}, |
|||
{NewFieldElement(14131075703244612804), NewFieldElement(3689236699393284763)}, |
|||
{NewFieldElement(18110259573622113024), NewFieldElement(6304531968860732013)}, |
|||
{NewFieldElement(8367598931797559807), NewFieldElement(15403657336885577186)}, |
|||
{NewFieldElement(14940830541973671114), NewFieldElement(7321434648394309094)}, |
|||
{NewFieldElement(4391132182759374634), NewFieldElement(5732898826353006639)}, |
|||
{NewFieldElement(7456591484914201025), NewFieldElement(18109528517204812723)}, |
|||
{NewFieldElement(17161771796959903109), NewFieldElement(13156261145684066101)}, |
|||
{NewFieldElement(13536084388374414797), NewFieldElement(2054701847843415519)}, |
|||
{NewFieldElement(14910161626746342494), NewFieldElement(16386413929249303239)}, |
|||
{NewFieldElement(135663282453455528), NewFieldElement(7326002312332878726)}, |
|||
} |
|||
|
|||
var arithmeticGateExpectedConstraints = []QuadraticExtension{ |
|||
{NewFieldElement(9603520691216808695), NewFieldElement(4690376779053831127)}, |
|||
{NewFieldElement(5966866800636406163), NewFieldElement(6497324789933336132)}, |
|||
{NewFieldElement(6878826495788308741), NewFieldElement(6127451825087650238)}, |
|||
{NewFieldElement(6678434778566461093), NewFieldElement(4026425239249050845)}, |
|||
{NewFieldElement(12356209889502117742), NewFieldElement(2848290571099391070)}, |
|||
{NewFieldElement(7541992239029108782), NewFieldElement(17950940401537766942)}, |
|||
{NewFieldElement(8908708207493246100), NewFieldElement(7160028060821122527)}, |
|||
{NewFieldElement(409323751734912343), NewFieldElement(24526598513461753)}, |
|||
{NewFieldElement(10095343333078580948), NewFieldElement(9161015237592230075)}, |
|||
{NewFieldElement(11010535831715159243), NewFieldElement(15218713219737909314)}, |
|||
{NewFieldElement(1130027067868936767), NewFieldElement(348988747125952834)}, |
|||
{NewFieldElement(4887152687323312043), NewFieldElement(2858818833929316587)}, |
|||
{NewFieldElement(2026398252660761898), NewFieldElement(14463964653784091512)}, |
|||
{NewFieldElement(11677435047184556805), NewFieldElement(14702888148318045748)}, |
|||
{NewFieldElement(2582432912602788354), NewFieldElement(6113339395054066192)}, |
|||
{NewFieldElement(6676401481409103862), NewFieldElement(423414056716918306)}, |
|||
{NewFieldElement(10348954695605340465), NewFieldElement(9794647822577644958)}, |
|||
{NewFieldElement(15581055079466977733), NewFieldElement(2184227200414011915)}, |
|||
{NewFieldElement(16837665759306664052), NewFieldElement(13229282844806523763)}, |
|||
{NewFieldElement(15646775329525033386), NewFieldElement(7893047165846868816)}, |
|||
} |