11use crate :: circuit_claim:: { CircuitClaim , CircuitInteractionClaim , CircuitInteractionElements } ;
22use crate :: components:: {
33 blake_g, blake_gate, blake_output, blake_round, blake_round_sigma, eq, m_31_to_u_32, qm31_ops,
4- range_check_15, range_check_16, triple_xor_32 , verify_bitwise_xor_4 , verify_bitwise_xor_7 ,
5- verify_bitwise_xor_8, verify_bitwise_xor_9, verify_bitwise_xor_12,
4+ range_check_15, range_check_16, triple_xor , triple_xor_32 , verify_bitwise_xor_4 ,
5+ verify_bitwise_xor_7 , verify_bitwise_xor_8, verify_bitwise_xor_9, verify_bitwise_xor_12,
66} ;
77use stwo:: core:: air:: Component ;
88use stwo_constraint_framework:: TraceLocationAllocator ;
@@ -26,6 +26,7 @@ define_component_list! {
2626 BlakeG ,
2727 BlakeOutput ,
2828 TripleXor32 ,
29+ TripleXor ,
2930 M31ToU32 ,
3031 VerifyBitwiseXor8 ,
3132 VerifyBitwiseXor12 ,
@@ -45,6 +46,7 @@ pub struct CircuitComponents {
4546 pub blake_g : blake_g:: Component ,
4647 pub blake_output : blake_output:: Component ,
4748 pub triple_xor_32 : triple_xor_32:: Component ,
49+ pub triple_xor : triple_xor:: Component ,
4850 pub m_31_to_u_32 : m_31_to_u_32:: Component ,
4951 pub verify_bitwise_xor_8 : verify_bitwise_xor_8:: Component ,
5052 pub verify_bitwise_xor_12 : verify_bitwise_xor_12:: Component ,
@@ -139,6 +141,16 @@ impl CircuitComponents {
139141 } ,
140142 interaction_claim. claimed_sums [ ComponentList :: TripleXor32 as usize ] ,
141143 ) ;
144+ let triple_xor_component = triple_xor:: Component :: new (
145+ tree_span_provider,
146+ triple_xor:: Eval {
147+ claim : triple_xor:: Claim {
148+ log_size : circuit_claim. log_sizes [ ComponentList :: TripleXor as usize ] ,
149+ } ,
150+ common_lookup_elements : interaction_elements. common_lookup_elements . clone ( ) ,
151+ } ,
152+ interaction_claim. claimed_sums [ ComponentList :: TripleXor as usize ] ,
153+ ) ;
142154 let m_31_to_u_32_component = m_31_to_u_32:: Component :: new (
143155 tree_span_provider,
144156 m_31_to_u_32:: Eval {
@@ -214,6 +226,7 @@ impl CircuitComponents {
214226 blake_g : blake_g_component,
215227 blake_output : blake_output_component,
216228 triple_xor_32 : triple_xor_32_component,
229+ triple_xor : triple_xor_component,
217230 m_31_to_u_32 : m_31_to_u_32_component,
218231 verify_bitwise_xor_8 : verify_bitwise_xor_8_component,
219232 verify_bitwise_xor_12 : verify_bitwise_xor_12_component,
@@ -235,6 +248,7 @@ impl CircuitComponents {
235248 Box :: new( self . blake_g) as Box <dyn Component >,
236249 Box :: new( self . blake_output) as Box <dyn Component >,
237250 Box :: new( self . triple_xor_32) as Box <dyn Component >,
251+ Box :: new( self . triple_xor) as Box <dyn Component >,
238252 Box :: new( self . m_31_to_u_32) as Box <dyn Component >,
239253 Box :: new( self . verify_bitwise_xor_8) as Box <dyn Component >,
240254 Box :: new( self . verify_bitwise_xor_12) as Box <dyn Component >,
0 commit comments