Skip to content

Commit

Permalink
fix layers + from string
Browse files Browse the repository at this point in the history
  • Loading branch information
HadiEsna committed Jul 18, 2024
1 parent aac4699 commit 06e4e7f
Show file tree
Hide file tree
Showing 10 changed files with 692 additions and 20 deletions.
8 changes: 4 additions & 4 deletions src/gkr/circuit.rs
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ impl Circuit {
if self.layers.len() == 0 {
inputs_int.push(input.parse::<usize>().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 {
Expand All @@ -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) {
Expand All @@ -84,8 +84,8 @@ impl Circuit {

pub fn evaluate(&self, inputs: Vec<i128>) -> 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 {
Expand Down
4 changes: 1 addition & 3 deletions src/lib.rs
Original file line number Diff line number Diff line change
@@ -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;
3 changes: 3 additions & 0 deletions src/sum_check/mod.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
pub mod prover;
pub mod proving_process_interactive;
pub mod verifier;
File renamed without changes.
Original file line number Diff line number Diff line change
@@ -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);
Expand Down
File renamed without changes.
671 changes: 671 additions & 0 deletions tarpaulin-report.html

Large diffs are not rendered by default.

14 changes: 7 additions & 7 deletions tests/prover_test.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,15 @@ 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);
}

#[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);
}
Expand All @@ -20,15 +20,15 @@ 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);
}

#[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();
Expand All @@ -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();
Expand All @@ -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();
Expand All @@ -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();
Expand Down
6 changes: 3 additions & 3 deletions tests/proving_process_test.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}
2 changes: 1 addition & 1 deletion tests/test_circuit.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}
Expand Down

0 comments on commit 06e4e7f

Please sign in to comment.