diff --git a/basic/src/lib.rs b/basic/src/lib.rs index 06a0f07..fb434d5 100644 --- a/basic/src/lib.rs +++ b/basic/src/lib.rs @@ -625,12 +625,27 @@ impl Machine for BasicMachine { (&perm_data, zeta_and_next.as_slice()), ("ient_data, zeta_exp_quotient_degree.as_slice()), ]; - let (openings, opening_proof) = - pcs.open_multi_batches(&prover_data_and_points, &mut challenger); - - let [preprocessed_openings, main_openings, perm_openings, quotient_openings] = openings - .try_into() - .expect("Should have 4 rounds of openings"); + // let (openings, opening_proof) = + // pcs.open_multi_batches(&prover_data_and_points, &mut challenger); + + let (preprocessed_openings, preprocessed_opening_proof) = + pcs.open_multi_batches(&[(&preprocessed_data, zeta_and_next.as_slice())], + &mut challenger); + let [preprocessed_openings] = preprocessed_openings.try_into().expect("Should have 1 round opening"); + + let (main_openings, main_opening_proof) = + pcs.open_multi_batches(&[(&main_data, zeta_and_next.as_slice())], + &mut challenger); + let [main_openings] = main_openings.try_into().expect("Should have 1 round opening"); + + let (perm_openings, perm_opening_proof) = + pcs.open_multi_batches(&[(&perm_data, zeta_and_next.as_slice())], + &mut challenger); + let [perm_openings] = perm_openings.try_into().expect("Should have 1 round opening"); + + // let [preprocessed_openings, main_openings, perm_openings, quotient_openings] = openings + // .try_into() + // .expect("Should have 4 rounds of openings"); let commitments = Commitments { preprocessed_trace: preprocessed_commit, diff --git a/machine/src/proof.rs b/machine/src/proof.rs index 8b3b064..5cf0d54 100644 --- a/machine/src/proof.rs +++ b/machine/src/proof.rs @@ -13,10 +13,19 @@ type PcsProof = <::Pcs as Pcs, ValMat>>::Proo #[serde(bound = "SC::Challenge: Serialize + DeserializeOwned")] pub struct MachineProof { pub commitments: Commitments>, - pub opening_proof: PcsProof, + pub opening_proofs: OpeningProofs, pub chip_proofs: Vec>, } +#[derive(Serialize, Deserialize)] +#[serde(bound = "SC::Challenge: Serialize + DeserializeOwned")] +pub struct OpeningProofs { + pub preprocessed: PcsProof, + pub main: PcsProof, + pub perm: PcsProof, + pub quotient: PcsProof, +} + #[derive(Serialize, Deserialize)] pub struct Commitments { pub preprocessed_trace: Com,