From 06e4e7fa42315c76f9a4c4f8cc164fde74ac78cf Mon Sep 17 00:00:00 2001 From: hadi esna Date: Thu, 18 Jul 2024 20:46:10 +0100 Subject: [PATCH] fix layers + from string --- src/gkr/circuit.rs | 8 +- src/lib.rs | 4 +- src/sum_check/mod.rs | 3 + src/{ => sum_check}/prover.rs | 0 .../proving_process_interactive.rs | 4 +- src/{ => sum_check}/verifier.rs | 0 tarpaulin-report.html | 671 ++++++++++++++++++ tests/prover_test.rs | 14 +- tests/proving_process_test.rs | 6 +- tests/test_circuit.rs | 2 +- 10 files changed, 692 insertions(+), 20 deletions(-) create mode 100644 src/sum_check/mod.rs rename src/{ => sum_check}/prover.rs (100%) rename src/{ => sum_check}/proving_process_interactive.rs (89%) rename src/{ => sum_check}/verifier.rs (100%) create mode 100644 tarpaulin-report.html diff --git a/src/gkr/circuit.rs b/src/gkr/circuit.rs index e66daa3..c41d40e 100644 --- a/src/gkr/circuit.rs +++ b/src/gkr/circuit.rs @@ -53,7 +53,7 @@ impl Circuit { if self.layers.len() == 0 { inputs_int.push(input.parse::().unwrap()); } else { - let last_layer = &self.layers[self.layers.len() - 1]; + let last_layer = &self.layers[0]; let last_layer_gates = &last_layer.gates; let mut found = false; for last_layer_gate in last_layer_gates { @@ -75,7 +75,7 @@ impl Circuit { name: name, }); } - self.layers.push(Layer { gates: gates }); + self.layers.insert(0, Layer { gates: gates }); } pub fn add_layer(&mut self, layer: Layer) { @@ -84,8 +84,8 @@ impl Circuit { pub fn evaluate(&self, inputs: Vec) -> i128 { let mut outputs = inputs.clone(); - - for layer in self.layers.iter() { + let reversed_layers = self.layers.iter().rev(); + for layer in reversed_layers { let mut new_outputs = vec![]; for gate in layer.gates.iter() { if gate.gate_type == GateType::Add { diff --git a/src/lib.rs b/src/lib.rs index e1cfe80..d575b3d 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,5 +1,3 @@ pub mod equation; pub mod gkr; -pub mod prover; -pub mod proving_process_interactive; -pub mod verifier; +pub mod sum_check; diff --git a/src/sum_check/mod.rs b/src/sum_check/mod.rs new file mode 100644 index 0000000..7e215e6 --- /dev/null +++ b/src/sum_check/mod.rs @@ -0,0 +1,3 @@ +pub mod prover; +pub mod proving_process_interactive; +pub mod verifier; diff --git a/src/prover.rs b/src/sum_check/prover.rs similarity index 100% rename from src/prover.rs rename to src/sum_check/prover.rs diff --git a/src/proving_process_interactive.rs b/src/sum_check/proving_process_interactive.rs similarity index 89% rename from src/proving_process_interactive.rs rename to src/sum_check/proving_process_interactive.rs index dd15376..739f66a 100644 --- a/src/proving_process_interactive.rs +++ b/src/sum_check/proving_process_interactive.rs @@ -1,6 +1,6 @@ use crate::equation::equation::Equation; -use crate::prover::Prover; -use crate::verifier::Verifier; +use crate::sum_check::prover::Prover; +use crate::sum_check::verifier::Verifier; pub fn run_proving_process(equation: Equation, f: i128) { let mut prover = Prover::new(equation.clone(), f); diff --git a/src/verifier.rs b/src/sum_check/verifier.rs similarity index 100% rename from src/verifier.rs rename to src/sum_check/verifier.rs diff --git a/tarpaulin-report.html b/tarpaulin-report.html new file mode 100644 index 0000000..b684fec --- /dev/null +++ b/tarpaulin-report.html @@ -0,0 +1,671 @@ + + + + + + + +
+ + + + + + \ No newline at end of file diff --git a/tests/prover_test.rs b/tests/prover_test.rs index b59025c..4843b38 100644 --- a/tests/prover_test.rs +++ b/tests/prover_test.rs @@ -3,7 +3,7 @@ use sum_check; #[test] fn test_sum() { let equation = sum_check::equation::equation::Equation::from_string("x"); - let mut prover = sum_check::prover::Prover::new(equation, 5); + let mut prover = sum_check::sum_check::prover::Prover::new(equation, 5); prover.calculate_sum(); assert_eq!(prover.sum.sum, 1); } @@ -11,7 +11,7 @@ fn test_sum() { #[test] fn test_sum2() { let equation = sum_check::equation::equation::Equation::from_string("x+y"); - let mut prover = sum_check::prover::Prover::new(equation, 5); + let mut prover = sum_check::sum_check::prover::Prover::new(equation, 5); prover.calculate_sum(); assert_eq!(prover.sum.sum, 4); } @@ -20,7 +20,7 @@ fn test_sum2() { fn test_sum3() { let equation = sum_check::equation::equation::Equation::from_string("x*y^3 + 2*y^1 + 3*y^3 + y + z+j"); - let mut prover = sum_check::prover::Prover::new(equation, 67); + let mut prover = sum_check::sum_check::prover::Prover::new(equation, 67); prover.calculate_sum(); assert_eq!(prover.sum.sum, 1); } @@ -28,7 +28,7 @@ fn test_sum3() { #[test] fn test_sum4() { let equation = sum_check::equation::equation::Equation::from_string("x"); - let mut prover = sum_check::prover::Prover::new(equation, 100); + let mut prover = sum_check::sum_check::prover::Prover::new(equation, 100); prover.calculate_sum(); assert_eq!(prover.sum.sum, 1); let e = prover.first_round(); @@ -38,7 +38,7 @@ fn test_sum4() { #[test] fn test_sum5() { let equation = sum_check::equation::equation::Equation::from_string("x + 1"); - let mut prover = sum_check::prover::Prover::new(equation, 100); + let mut prover = sum_check::sum_check::prover::Prover::new(equation, 100); prover.calculate_sum(); assert_eq!(prover.sum.sum, 3); let e = prover.first_round(); @@ -48,7 +48,7 @@ fn test_sum5() { #[test] fn test_sum6() { let equation = sum_check::equation::equation::Equation::from_string("x + y"); - let mut prover = sum_check::prover::Prover::new(equation, 100); + let mut prover = sum_check::sum_check::prover::Prover::new(equation, 100); prover.calculate_sum(); assert_eq!(prover.sum.sum, 4); let e = prover.first_round(); @@ -58,7 +58,7 @@ fn test_sum6() { #[test] fn test_sum7() { let equation = sum_check::equation::equation::Equation::from_string("x^3 + 3*x*y^3 + y"); - let mut prover = sum_check::prover::Prover::new(equation, 100); + let mut prover = sum_check::sum_check::prover::Prover::new(equation, 100); prover.calculate_sum(); assert_eq!(prover.sum.sum, 7); let e = prover.first_round(); diff --git a/tests/proving_process_test.rs b/tests/proving_process_test.rs index 18849af..3fb5922 100644 --- a/tests/proving_process_test.rs +++ b/tests/proving_process_test.rs @@ -3,17 +3,17 @@ use sum_check; #[test] fn test_verify_process() { let equation = sum_check::equation::equation::Equation::from_string("2*x1^3+x1*x2+x2*x3"); - sum_check::proving_process_interactive::run_proving_process(equation, 100); + sum_check::sum_check::proving_process_interactive::run_proving_process(equation, 100); } #[test] fn test_verify_process2() { let equation = sum_check::equation::equation::Equation::from_string("x1+x2+x3"); - sum_check::proving_process_interactive::run_proving_process(equation, 100); + sum_check::sum_check::proving_process_interactive::run_proving_process(equation, 100); } #[test] fn test_verify_process3() { let equation = sum_check::equation::equation::Equation::from_string("2*x1^3+x1*x2+x2*x3"); - sum_check::proving_process_interactive::run_proving_process(equation, 1000); + sum_check::sum_check::proving_process_interactive::run_proving_process(equation, 1000); } diff --git a/tests/test_circuit.rs b/tests/test_circuit.rs index a355cf3..744d092 100644 --- a/tests/test_circuit.rs +++ b/tests/test_circuit.rs @@ -38,7 +38,7 @@ fn test_init_and_evaluate_circuit2() { }], }; let circuit = Circuit { - layers: vec![layer1, layer2], + layers: vec![layer2, layer1], }; assert_eq!(circuit.evaluate(vec![1, 2, 2, 2]), 7); }