|
|
@ -1,10 +1,10 @@ |
|
|
|
use scenario_config::ScenarioConfig;
|
|
|
|
use tracing::info_span;
|
|
|
|
|
|
|
|
use crate::{
|
|
|
|
folding::{prepare_folding, verify_folding, FoldingSchemeExt, HyperNovaFolding, NovaFolding},
|
|
|
|
logging::init_logging,
|
|
|
|
logging::{init_logging},
|
|
|
|
};
|
|
|
|
use crate::logging::measure;
|
|
|
|
|
|
|
|
mod circuit;
|
|
|
|
mod logging;
|
|
|
@ -22,17 +22,16 @@ fn scenario( |
|
|
|
// ============== FOLDING PREPARATION ==========================================================
|
|
|
|
|
|
|
|
let start_state = config.start_ivc_state.clone();
|
|
|
|
let (mut folding, folding_vp) = measure("Prepare folding", || {
|
|
|
|
prepare_folding::<FS>(&config.circuit, start_state.clone(), rng)
|
|
|
|
});
|
|
|
|
let (mut folding, folding_vp) = info_span!("Prepare folding")
|
|
|
|
.in_scope(|| prepare_folding::<FS>(&config.circuit, start_state.clone(), rng));
|
|
|
|
|
|
|
|
let input = info_span!("Transform input")
|
|
|
|
.in_scope(|| folding.transform_inputs(config.input().to_vec(), start_state, &mut *rng));
|
|
|
|
|
|
|
|
// ============== FOLDING ======================================================================
|
|
|
|
|
|
|
|
let input = measure("Transform input", || {
|
|
|
|
folding.transform_inputs(config.input().to_vec(), start_state.clone(), &mut *rng)
|
|
|
|
});
|
|
|
|
for (i, step_input) in input.into_iter().enumerate() {
|
|
|
|
measure(&format!("Prove_step {i}"), || {
|
|
|
|
info_span!("Folding step", step = i).in_scope(|| {
|
|
|
|
folding
|
|
|
|
.prove_step(
|
|
|
|
&mut *rng,
|
|
|
@ -45,7 +44,7 @@ fn scenario( |
|
|
|
|
|
|
|
// ============== FOLDING VERIFICATION =========================================================
|
|
|
|
|
|
|
|
measure("Folding verification", || {
|
|
|
|
info_span!("Folding verification").in_scope(|| {
|
|
|
|
verify_folding(
|
|
|
|
&folding,
|
|
|
|
folding_vp,
|
|
|
|