@@ -2,18 +2,18 @@ use std::{marker::PhantomData, mem, sync::Arc};
22
33use ff_ext:: ExtensionField ;
44use gkr_iop:: {
5- ProtocolBuilder , ProtocolWitnessGenerator ,
65 chip:: Chip ,
76 evaluation:: { EvalExpression , PointAndEval } ,
87 gkr:: {
9- GKRCircuitWitness , GKRProverOutput ,
108 layer:: { Layer , LayerType , LayerWitness } ,
9+ GKRCircuitWitness , GKRProverOutput ,
1110 } ,
11+ ProtocolBuilder , ProtocolWitnessGenerator ,
1212} ;
13- use itertools:: { Itertools , izip } ;
14- use p3_field:: { PrimeCharacteristicRing , extension:: BinomialExtensionField } ;
13+ use itertools:: { izip , Itertools } ;
14+ use p3_field:: { extension:: BinomialExtensionField , PrimeCharacteristicRing } ;
1515use p3_goldilocks:: Goldilocks ;
16- use rand:: { Rng , rngs:: OsRng } ;
16+ use rand:: { rngs:: OsRng , Rng } ;
1717use subprotocols:: expression:: { Constant , Expression } ;
1818use transcript:: { BasicTranscript , Transcript } ;
1919
@@ -64,14 +64,15 @@ impl<E: ExtensionField> ProtocolBuilder for TowerChipLayout<E> {
6464 let height = self . params . height ;
6565 let lookup_challenge = Expression :: Const ( self . lookup_challenge . clone ( ) ) ;
6666
67- self . output_cumulative_sum = chip. allocate_output_evals ( ) ;
67+ self . output_cumulative_sum = chip. allocate_output_evals :: < 2 > ( ) . try_into ( ) . unwrap ( ) ;
6868
6969 // Tower layers
7070 let ( [ updated_table, count] , challenges) = ( 0 ..height) . fold (
7171 ( self . output_cumulative_sum . clone ( ) , vec ! [ ] ) ,
7272 |( [ den, num] , challenges) , i| {
7373 let [ den_0, den_1, num_0, num_1] = if i == height - 1 {
74- // Allocate witnesses in the extension field, except numerator inputs in the base field.
74+ // Allocate witnesses in the extension field, except numerator inputs in the
75+ // base field.
7576 let ( [ num_0, num_1] , [ den_0, den_1] ) = chip. allocate_wits_in_layer ( ) ;
7677 [ den_0, den_1, num_0, num_1]
7778 } else {
@@ -86,17 +87,20 @@ impl<E: ExtensionField> ProtocolBuilder for TowerChipLayout<E> {
8687 num_1. 0 . into ( ) ,
8788 ] ;
8889 let ( in_bases, in_exts) = if i == height - 1 {
89- ( vec ! [ num_0 . 1 . clone ( ) , num_1 . 1 . clone ( ) ] , vec ! [
90- den_0 . 1 . clone( ) ,
91- den_1. 1 . clone( ) ,
92- ] )
90+ (
91+ vec ! [ num_0 . 1 . clone( ) , num_1 . 1 . clone ( ) ] ,
92+ vec ! [ den_0 . 1 . clone ( ) , den_1. 1 . clone( ) ] ,
93+ )
9394 } else {
94- ( vec ! [ ] , vec ! [
95- den_0. 1 . clone( ) ,
96- den_1. 1 . clone( ) ,
97- num_0. 1 . clone( ) ,
98- num_1. 1 . clone( ) ,
99- ] )
95+ (
96+ vec ! [ ] ,
97+ vec ! [
98+ den_0. 1 . clone( ) ,
99+ den_1. 1 . clone( ) ,
100+ num_0. 1 . clone( ) ,
101+ num_1. 1 . clone( ) ,
102+ ] ,
103+ )
100104 } ;
101105 chip. add_layer ( Layer :: new (
102106 format ! ( "Tower_layer_{}" , i) ,
@@ -109,6 +113,7 @@ impl<E: ExtensionField> ProtocolBuilder for TowerChipLayout<E> {
109113 in_bases,
110114 in_exts,
111115 vec ! [ den, num] ,
116+ vec ! [ ] ,
112117 ) ) ;
113118 let [ challenge] = chip. allocate_challenges ( ) ;
114119 (
@@ -138,6 +143,7 @@ impl<E: ExtensionField> ProtocolBuilder for TowerChipLayout<E> {
138143 vec ! [ table. 1 . clone( ) ] ,
139144 vec ! [ ] ,
140145 vec ! [ updated_table] ,
146+ vec ! [ ] ,
141147 ) ) ;
142148
143149 chip. allocate_base_opening ( self . committed_table_id , table. 1 ) ;
0 commit comments