@@ -340,10 +340,6 @@ fn prove_epoch(
340340 boundary : & [ CellBoundary ] ,
341341 opts : & ProofOptions ,
342342) -> Result < EpochProof , Error > {
343- // Use the cross-epoch boundary so this epoch's L2G table is identical to the
344- // one the global proof commits (the commitment binding compares their roots).
345- traces. local_to_global = local_to_global:: generate_local_to_global_trace ( boundary) ;
346-
347343 // Count this L2G table's range-check lookups into the BITWISE table so its
348344 // AreBytes/IsHalfword multiplicities balance the range-check senders.
349345 crate :: tables:: bitwise:: update_multiplicities (
@@ -396,10 +392,10 @@ fn prove_epoch(
396392 } ;
397393
398394 let l2g_air = l2g_memory_air ( opts, label) ;
399- let mut l2g_trace = std :: mem :: replace (
400- & mut traces . local_to_global ,
401- local_to_global :: generate_local_to_global_trace ( & [ ] ) ,
402- ) ;
395+ // Build this epoch's L2G table from the cross-epoch boundary so it is identical
396+ // to the one the global proof commits (the commitment binding compares their
397+ // roots). It is appended to the proof below, not through `air_trace_pairs`.
398+ let mut l2g_trace = local_to_global :: generate_local_to_global_trace ( boundary ) ;
403399
404400 let mut pairs = airs. air_trace_pairs ( & mut traces) ;
405401 pairs. push ( ( & l2g_air, & mut l2g_trace, & ( ) ) ) ;
0 commit comments