From 573f5bea2fa79f1e42d2f8f004426c22366cb495 Mon Sep 17 00:00:00 2001 From: Brian Lawrence Date: Mon, 30 Sep 2024 11:41:44 -0700 Subject: [PATCH] Mod 65537 tests, appears to work? --- src/schnorr_prover.rs | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/src/schnorr_prover.rs b/src/schnorr_prover.rs index 37142a5..8178415 100644 --- a/src/schnorr_prover.rs +++ b/src/schnorr_prover.rs @@ -214,18 +214,27 @@ mod tests{ let config = CircuitConfig::standard_recursion_config(); let mut builder = CircuitBuilder::::new(config); - let a: Vec = vec![0, 1, 2, 65535, 65536, 65537, p - 4, p - 3, p - 2, p - 1] - .into_iter() - .map(|x| builder.constant(GoldilocksField::from_canonical_u64(x))) - .collect(); + let a64: Vec = vec![0, 1, 2, 65535, 65536, 65537, p - 4, p - 3, p - 2, p - 1]; - //let r0 = SchnorrBuilder::mod_65537(&mut builder, &a[0]); + let a: Vec = a64 + .iter() + .map(|x| builder.constant(GoldilocksField::from_canonical_u64(*x))) + .collect(); let r: Vec = a.iter() .map(|targ| SchnorrBuilder::mod_65537(&mut builder, *targ)) .collect(); - builder.register_public_inputs(&a); + let r_expected64: Vec = a64.iter().map(|x| x % 65537).collect(); + + println!("Expected residues mod 64: {:?}", r_expected64); + + let r_expected: Vec = r_expected64.iter() + .map(|x| builder.constant(GoldilocksField::from_canonical_u64(*x))) + .collect(); + + r.iter().zip(r_expected.iter()) + .for_each(|(x, y)| builder.connect(*x, *y)); let mut pw: PartialWitness = PartialWitness::new(); let data = builder.build::();