From fdce382af3ff916d8a5fa009727399c190011523 Mon Sep 17 00:00:00 2001 From: Daniel Lubarov Date: Wed, 3 Nov 2021 14:30:32 -0700 Subject: [PATCH] Standard configs (#337) `large_config` was similar to `standard_recursion_config`; let's standardize on the latter. --- src/gadgets/arithmetic_extension.rs | 6 +++--- src/gadgets/insert.rs | 8 ++++---- src/gadgets/interpolation.rs | 2 +- src/gadgets/permutation.rs | 6 +++--- src/gadgets/random_access.rs | 2 +- src/gadgets/select.rs | 2 +- src/gadgets/sorting.rs | 2 +- src/gadgets/split_base.rs | 4 ++-- src/gates/arithmetic.rs | 6 ++++-- src/gates/constant.rs | 4 ++-- src/gates/exponentiation.rs | 4 ++-- src/gates/gate_testing.rs | 2 +- src/gates/gmimc.rs | 2 +- src/gates/poseidon.rs | 2 +- src/gates/switch.rs | 4 ++-- src/hash/merkle_proofs.rs | 2 +- src/iop/challenger.rs | 2 +- src/plonk/circuit_data.rs | 30 ++--------------------------- src/plonk/proof.rs | 2 +- src/util/reducing.rs | 4 ++-- 20 files changed, 36 insertions(+), 60 deletions(-) diff --git a/src/gadgets/arithmetic_extension.rs b/src/gadgets/arithmetic_extension.rs index f352cdf9..814cd8ae 100644 --- a/src/gadgets/arithmetic_extension.rs +++ b/src/gadgets/arithmetic_extension.rs @@ -545,7 +545,7 @@ mod tests { type FF = QuarticExtension; const D: usize = 4; - let config = CircuitConfig::large_config(); + let config = CircuitConfig::standard_recursion_config(); let mut pw = PartialWitness::new(); let mut builder = CircuitBuilder::::new(config); @@ -580,7 +580,7 @@ mod tests { type FF = QuarticExtension; const D: usize = 4; - let config = CircuitConfig::large_zk_config(); + let config = CircuitConfig::standard_recursion_zk_config(); let pw = PartialWitness::new(); let mut builder = CircuitBuilder::::new(config); @@ -608,7 +608,7 @@ mod tests { type FF = QuarticExtension; const D: usize = 4; - let config = CircuitConfig::large_config(); + let config = CircuitConfig::standard_recursion_config(); let pw = PartialWitness::new(); let mut builder = CircuitBuilder::::new(config); diff --git a/src/gadgets/insert.rs b/src/gadgets/insert.rs index 0759fc40..c6b463ea 100644 --- a/src/gadgets/insert.rs +++ b/src/gadgets/insert.rs @@ -43,7 +43,7 @@ mod tests { use anyhow::Result; use super::*; - use crate::field::extension_field::quartic::QuarticExtension; + use crate::field::extension_field::quadratic::QuadraticExtension; use crate::field::field_types::Field; use crate::field::goldilocks_field::GoldilocksField; use crate::iop::witness::PartialWitness; @@ -62,11 +62,11 @@ mod tests { fn test_insert_given_len(len_log: usize) -> Result<()> { type F = GoldilocksField; - type FF = QuarticExtension; + type FF = QuadraticExtension; let len = 1 << len_log; - let config = CircuitConfig::large_config(); + let config = CircuitConfig::standard_recursion_config(); let pw = PartialWitness::new(); - let mut builder = CircuitBuilder::::new(config); + let mut builder = CircuitBuilder::::new(config); let v = (0..len - 1) .map(|_| builder.constant_extension(FF::rand())) .collect::>(); diff --git a/src/gadgets/interpolation.rs b/src/gadgets/interpolation.rs index fadcfb4b..f72ed0fc 100644 --- a/src/gadgets/interpolation.rs +++ b/src/gadgets/interpolation.rs @@ -49,7 +49,7 @@ mod tests { fn test_interpolate() -> Result<()> { type F = GoldilocksField; type FF = QuarticExtension; - let config = CircuitConfig::large_config(); + let config = CircuitConfig::standard_recursion_config(); let pw = PartialWitness::new(); let mut builder = CircuitBuilder::::new(config); diff --git a/src/gadgets/permutation.rs b/src/gadgets/permutation.rs index c4762946..fd4a897f 100644 --- a/src/gadgets/permutation.rs +++ b/src/gadgets/permutation.rs @@ -397,7 +397,7 @@ mod tests { type F = GoldilocksField; const D: usize = 4; - let config = CircuitConfig::large_config(); + let config = CircuitConfig::standard_recursion_config(); let pw = PartialWitness::new(); let mut builder = CircuitBuilder::::new(config); @@ -422,7 +422,7 @@ mod tests { type F = GoldilocksField; const D: usize = 4; - let config = CircuitConfig::large_config(); + let config = CircuitConfig::standard_recursion_config(); let pw = PartialWitness::new(); let mut builder = CircuitBuilder::::new(config); @@ -451,7 +451,7 @@ mod tests { type F = GoldilocksField; const D: usize = 4; - let config = CircuitConfig::large_config(); + let config = CircuitConfig::standard_recursion_config(); let pw = PartialWitness::new(); let mut builder = CircuitBuilder::::new(config); diff --git a/src/gadgets/random_access.rs b/src/gadgets/random_access.rs index 3dc064ac..398c516f 100644 --- a/src/gadgets/random_access.rs +++ b/src/gadgets/random_access.rs @@ -98,7 +98,7 @@ mod tests { type F = GoldilocksField; type FF = QuarticExtension; let len = 1 << len_log; - let config = CircuitConfig::large_config(); + let config = CircuitConfig::standard_recursion_config(); let pw = PartialWitness::new(); let mut builder = CircuitBuilder::::new(config); let vec = FF::rand_vec(len); diff --git a/src/gadgets/select.rs b/src/gadgets/select.rs index 65c2d0fd..1db41fb8 100644 --- a/src/gadgets/select.rs +++ b/src/gadgets/select.rs @@ -53,7 +53,7 @@ mod tests { fn test_select() -> Result<()> { type F = GoldilocksField; type FF = QuarticExtension; - let config = CircuitConfig::large_config(); + let config = CircuitConfig::standard_recursion_config(); let mut pw = PartialWitness::new(); let mut builder = CircuitBuilder::::new(config); diff --git a/src/gadgets/sorting.rs b/src/gadgets/sorting.rs index 8495e79d..72dcf273 100644 --- a/src/gadgets/sorting.rs +++ b/src/gadgets/sorting.rs @@ -186,7 +186,7 @@ mod tests { type F = GoldilocksField; const D: usize = 4; - let config = CircuitConfig::large_config(); + let config = CircuitConfig::standard_recursion_config(); let mut pw = PartialWitness::new(); let mut builder = CircuitBuilder::::new(config); diff --git a/src/gadgets/split_base.rs b/src/gadgets/split_base.rs index 121c5529..30bdea6a 100644 --- a/src/gadgets/split_base.rs +++ b/src/gadgets/split_base.rs @@ -112,7 +112,7 @@ mod tests { #[test] fn test_split_base() -> Result<()> { type F = GoldilocksField; - let config = CircuitConfig::large_config(); + let config = CircuitConfig::standard_recursion_config(); let pw = PartialWitness::new(); let mut builder = CircuitBuilder::::new(config); let x = F::from_canonical_usize(0b110100000); // 416 = 1532 in base 6. @@ -138,7 +138,7 @@ mod tests { #[test] fn test_base_sum() -> Result<()> { type F = GoldilocksField; - let config = CircuitConfig::large_config(); + let config = CircuitConfig::standard_recursion_config(); let pw = PartialWitness::new(); let mut builder = CircuitBuilder::::new(config); diff --git a/src/gates/arithmetic.rs b/src/gates/arithmetic.rs index 19410358..98c15395 100644 --- a/src/gates/arithmetic.rs +++ b/src/gates/arithmetic.rs @@ -213,13 +213,15 @@ mod tests { #[test] fn low_degree() { - let gate = ArithmeticExtensionGate::new_from_config(&CircuitConfig::large_config()); + let gate = + ArithmeticExtensionGate::new_from_config(&CircuitConfig::standard_recursion_config()); test_low_degree::(gate); } #[test] fn eval_fns() -> Result<()> { - let gate = ArithmeticExtensionGate::new_from_config(&CircuitConfig::large_config()); + let gate = + ArithmeticExtensionGate::new_from_config(&CircuitConfig::standard_recursion_config()); test_eval_fns::(gate) } } diff --git a/src/gates/constant.rs b/src/gates/constant.rs index f88fc3a5..ff8ec851 100644 --- a/src/gates/constant.rs +++ b/src/gates/constant.rs @@ -123,14 +123,14 @@ mod tests { #[test] fn low_degree() { - let num_consts = CircuitConfig::large_config().constant_gate_size; + let num_consts = CircuitConfig::standard_recursion_config().constant_gate_size; let gate = ConstantGate { num_consts }; test_low_degree::(gate) } #[test] fn eval_fns() -> Result<()> { - let num_consts = CircuitConfig::large_config().constant_gate_size; + let num_consts = CircuitConfig::standard_recursion_config().constant_gate_size; let gate = ConstantGate { num_consts }; test_eval_fns::(gate) } diff --git a/src/gates/exponentiation.rs b/src/gates/exponentiation.rs index 86dd9fb1..5087cebd 100644 --- a/src/gates/exponentiation.rs +++ b/src/gates/exponentiation.rs @@ -299,7 +299,7 @@ mod tests { let config = CircuitConfig { num_wires: 120, num_routed_wires: 30, - ..CircuitConfig::large_config() + ..CircuitConfig::standard_recursion_config() }; test_low_degree::(ExponentiationGate::new_from_config(&config)); @@ -308,7 +308,7 @@ mod tests { #[test] fn eval_fns() -> Result<()> { test_eval_fns::(ExponentiationGate::new_from_config( - &CircuitConfig::large_config(), + &CircuitConfig::standard_recursion_config(), )) } diff --git a/src/gates/gate_testing.rs b/src/gates/gate_testing.rs index 74b4407e..9fe8e835 100644 --- a/src/gates/gate_testing.rs +++ b/src/gates/gate_testing.rs @@ -125,7 +125,7 @@ pub(crate) fn test_eval_fns, G: Gate, const D let wires = F::Extension::rand_vec(gate.num_wires()); let constants = F::Extension::rand_vec(gate.num_constants()); - let config = CircuitConfig::large_config(); + let config = CircuitConfig::standard_recursion_config(); let mut pw = PartialWitness::new(); let mut builder = CircuitBuilder::::new(config); diff --git a/src/gates/gmimc.rs b/src/gates/gmimc.rs index 4f5b971b..8a12df54 100644 --- a/src/gates/gmimc.rs +++ b/src/gates/gmimc.rs @@ -348,7 +348,7 @@ mod tests { type F = GoldilocksField; const WIDTH: usize = 12; - let config = CircuitConfig::large_config(); + let config = CircuitConfig::standard_recursion_config(); let mut builder = CircuitBuilder::new(config); type Gate = GMiMCGate; let gate = Gate::new(); diff --git a/src/gates/poseidon.rs b/src/gates/poseidon.rs index 40b987c8..9188a473 100644 --- a/src/gates/poseidon.rs +++ b/src/gates/poseidon.rs @@ -529,7 +529,7 @@ mod tests { let config = CircuitConfig { num_wires: 143, - ..CircuitConfig::large_config() + ..CircuitConfig::standard_recursion_config() }; let mut builder = CircuitBuilder::new(config); type Gate = PoseidonGate; diff --git a/src/gates/switch.rs b/src/gates/switch.rs index 480905fa..a1abd696 100644 --- a/src/gates/switch.rs +++ b/src/gates/switch.rs @@ -352,7 +352,7 @@ mod tests { #[test] fn low_degree() { test_low_degree::(SwitchGate::<_, 4>::new_from_config( - &CircuitConfig::large_config(), + &CircuitConfig::standard_recursion_config(), 3, )); } @@ -360,7 +360,7 @@ mod tests { #[test] fn eval_fns() -> Result<()> { test_eval_fns::(SwitchGate::<_, 4>::new_from_config( - &CircuitConfig::large_config(), + &CircuitConfig::standard_recursion_config(), 3, )) } diff --git a/src/hash/merkle_proofs.rs b/src/hash/merkle_proofs.rs index 0a4e999e..1ba93cf0 100644 --- a/src/hash/merkle_proofs.rs +++ b/src/hash/merkle_proofs.rs @@ -142,7 +142,7 @@ mod tests { #[test] fn test_recursive_merkle_proof() -> Result<()> { type F = GoldilocksField; - let config = CircuitConfig::large_config(); + let config = CircuitConfig::standard_recursion_config(); let mut pw = PartialWitness::new(); let mut builder = CircuitBuilder::::new(config); diff --git a/src/iop/challenger.rs b/src/iop/challenger.rs index 4bd170f0..87b0512d 100644 --- a/src/iop/challenger.rs +++ b/src/iop/challenger.rs @@ -376,7 +376,7 @@ mod tests { outputs_per_round.push(challenger.get_n_challenges(num_outputs_per_round[r])); } - let config = CircuitConfig::large_config(); + let config = CircuitConfig::standard_recursion_config(); let mut builder = CircuitBuilder::::new(config); let mut recursive_challenger = RecursiveChallenger::new(&mut builder); let mut recursive_outputs_per_round: Vec> = Vec::new(); diff --git a/src/plonk/circuit_data.rs b/src/plonk/circuit_data.rs index 2f1fcb67..2f98d0a6 100644 --- a/src/plonk/circuit_data.rs +++ b/src/plonk/circuit_data.rs @@ -68,36 +68,10 @@ impl CircuitConfig { } } - #[cfg(test)] - pub(crate) fn large_config() -> Self { - Self { - num_wires: 143, - num_routed_wires: 64, - constant_gate_size: 6, - security_bits: 4, - rate_bits: 3, - num_challenges: 3, - zero_knowledge: false, - cap_height: 1, - fri_config: FriConfig { - proof_of_work_bits: 1, - reduction_strategy: FriReductionStrategy::ConstantArityBits(3, 5), - num_query_rounds: 1, - }, - } - } - - #[cfg(test)] - pub(crate) fn large_zk_config() -> Self { + pub(crate) fn standard_recursion_zk_config() -> Self { CircuitConfig { zero_knowledge: true, - cap_height: 1, - fri_config: FriConfig { - proof_of_work_bits: 1, - reduction_strategy: FriReductionStrategy::ConstantArityBits(3, 5), - num_query_rounds: 1, - }, - ..Self::large_config() + ..Self::standard_recursion_config() } } } diff --git a/src/plonk/proof.rs b/src/plonk/proof.rs index e9e6a206..ce1207cd 100644 --- a/src/plonk/proof.rs +++ b/src/plonk/proof.rs @@ -320,7 +320,7 @@ mod tests { type F = GoldilocksField; const D: usize = 4; - let mut config = CircuitConfig::large_config(); + let mut config = CircuitConfig::standard_recursion_config(); config.fri_config.reduction_strategy = FriReductionStrategy::Fixed(vec![1, 1]); config.fri_config.num_query_rounds = 50; diff --git a/src/util/reducing.rs b/src/util/reducing.rs index 25dc88cc..3e00602c 100644 --- a/src/util/reducing.rs +++ b/src/util/reducing.rs @@ -192,7 +192,7 @@ mod tests { type FF = QuarticExtension; const D: usize = 4; - let config = CircuitConfig::large_config(); + let config = CircuitConfig::standard_recursion_config(); let pw = PartialWitness::new(); let mut builder = CircuitBuilder::::new(config); @@ -220,7 +220,7 @@ mod tests { type FF = QuarticExtension; const D: usize = 4; - let config = CircuitConfig::large_config(); + let config = CircuitConfig::standard_recursion_config(); let pw = PartialWitness::new(); let mut builder = CircuitBuilder::::new(config);