11use std:: collections:: HashMap ;
22
3- use bls12_381:: Scalar ;
43use ff:: Field ;
54use group:: prime:: PrimeGroup ;
65use rand:: rngs:: OsRng ;
@@ -52,7 +51,7 @@ pub fn shifted_dlog<G: PrimeGroup, R: RngCore>(
5251
5352 let var_X = relation. allocate_eq ( var_G * var_x + var_G * <G :: Scalar as Field >:: ONE ) ;
5453 // another way of writing this is:
55- relation. append_equation ( var_X, ( var_x + Scalar :: from ( 1 ) ) * var_G) ;
54+ relation. append_equation ( var_X, ( var_x + G :: Scalar :: from ( 1 ) ) * var_G) ;
5655
5756 relation. set_element ( var_G, G :: generator ( ) ) ;
5857 relation. compute_image ( & [ x] ) . unwrap ( ) ;
@@ -156,15 +155,12 @@ pub fn twisted_pedersen_commitment<G: PrimeGroup, R: RngCore>(
156155 let [ var_x, var_r] = relation. allocate_scalars ( ) ;
157156 let [ var_G, var_H] = relation. allocate_elements ( ) ;
158157
159- let var_C = relation. allocate_eq ( ( var_x * Scalar :: from ( 3 ) ) * var_G + ( var_r * Scalar :: from ( 2 ) + Scalar :: from ( 3 ) ) * var_H) ;
158+ relation. allocate_eq ( ( var_x * G :: Scalar :: from ( 3 ) ) * var_G + ( var_r * G :: Scalar :: from ( 2 ) + G :: Scalar :: from ( 3 ) ) * var_H) ;
160159
161160 relation. set_elements ( [ ( var_H, H ) , ( var_G, G :: generator ( ) ) ] ) ;
162161 relation. compute_image ( & [ x, r] ) . unwrap ( ) ;
163162
164- let C = relation. linear_map . group_elements . get ( var_C) . unwrap ( ) ;
165-
166163 let witness = vec ! [ x, r] ;
167- assert_eq ! ( C , G :: generator( ) * x + H * r) ;
168164 let instance = ( & relation) . try_into ( ) . unwrap ( ) ;
169165 ( instance, witness)
170166}
@@ -272,13 +268,13 @@ pub fn weird_linear_combination<G: PrimeGroup, R: RngCore>(
272268
273269 let gen__disj1_x_r_var = sigma__lr. allocate_scalar ( ) ;
274270 let A = sigma__lr. allocate_element ( ) ;
275- let B_var = sigma__lr. allocate_element ( ) ;
271+ let var_B = sigma__lr. allocate_element ( ) ;
276272
277273 let sigma__eq1 =
278- sigma__lr. allocate_eq ( A * < G :: Scalar as ff :: Field > :: ONE + gen__disj1_x_r_var * B_var ) ;
274+ sigma__lr. allocate_eq ( A * G :: Scalar :: from ( 1 ) + gen__disj1_x_r_var * var_B ) ;
279275
280276 // Set the group elements
281- sigma__lr. set_elements ( [ ( A , G :: generator ( ) ) , ( B_var , B ) ] ) ;
277+ sigma__lr. set_elements ( [ ( A , G :: generator ( ) ) , ( var_B , B ) ] ) ;
282278 sigma__lr. compute_image ( & [ gen__disj1_x_r] ) . unwrap ( ) ;
283279
284280 let result = sigma__lr. linear_map . group_elements . get ( sigma__eq1) . unwrap ( ) ;
@@ -300,11 +296,11 @@ fn simple_subtractions<G: PrimeGroup, R: RngCore>(
300296 let X = B * ( x - G :: Scalar :: from_u128 ( 1u128 ) ) ;
301297
302298 let mut linear_relation = LinearRelation :: < G > :: new ( ) ;
303- let x_var = linear_relation. allocate_scalar ( ) ;
304- let B_var = linear_relation. allocate_element ( ) ;
305- let X_var = linear_relation. allocate_eq ( ( x_var + ( -G :: Scalar :: from_u128 ( 1u128 ) ) ) * B_var ) ;
306- linear_relation. set_element ( B_var , B ) ;
307- linear_relation. set_element ( X_var , X ) ;
299+ let var_x = linear_relation. allocate_scalar ( ) ;
300+ let var_B = linear_relation. allocate_element ( ) ;
301+ let var_X = linear_relation. allocate_eq ( ( var_x + ( -G :: Scalar :: from_u128 ( 1u128 ) ) ) * var_B ) ;
302+ linear_relation. set_element ( var_B , B ) ;
303+ linear_relation. set_element ( var_X , X ) ;
308304
309305 let instance = ( & linear_relation) . try_into ( ) . unwrap ( ) ;
310306 let witness = vec ! [ x] ;
@@ -319,13 +315,13 @@ fn subtractions_with_shift<G: PrimeGroup, R: RngCore>(
319315 let X = B * ( x - G :: Scalar :: from ( 2 ) ) ;
320316
321317 let mut linear_relation = LinearRelation :: < G > :: new ( ) ;
322- let x_var = linear_relation. allocate_scalar ( ) ;
323- let B_var = linear_relation. allocate_element ( ) ;
324- let X_var =
325- linear_relation. allocate_eq ( ( x_var + ( -G :: Scalar :: from_u128 ( 1u128 ) ) ) * B_var + ( -B_var ) ) ;
318+ let var_x = linear_relation. allocate_scalar ( ) ;
319+ let var_B = linear_relation. allocate_element ( ) ;
320+ let var_X =
321+ linear_relation. allocate_eq ( ( var_x + ( -G :: Scalar :: from_u128 ( 1u128 ) ) ) * var_B + ( -var_B ) ) ;
326322
327- linear_relation. set_element ( B_var , B ) ;
328- linear_relation. set_element ( X_var , X ) ;
323+ linear_relation. set_element ( var_B , B ) ;
324+ linear_relation. set_element ( var_X , X ) ;
329325 let instance = ( & linear_relation) . try_into ( ) . unwrap ( ) ;
330326 let witness = vec ! [ x] ;
331327 ( instance, witness)
@@ -347,6 +343,7 @@ fn test_common_relations() {
347343 instance_generators. insert ( "dleq" , Box :: new ( dleq) ) ;
348344 instance_generators. insert ( "shifted_dleq" , Box :: new ( shifted_dleq) ) ;
349345 instance_generators. insert ( "pedersen_commitment" , Box :: new ( pedersen_commitment) ) ;
346+ instance_generators. insert ( "twisted_pedersen_commitment" , Box :: new ( twisted_pedersen_commitment) ) ;
350347 instance_generators. insert (
351348 "pedersen_commitment_dleq" ,
352349 Box :: new ( pedersen_commitment_dleq) ,
0 commit comments