use ff::PrimeField;
use crate::{
plonk::{lookup, permutation, trash, vanishing},
poly::{commitment::PolynomialCommitmentScheme, Coeff, LagrangeCoeff, Polynomial},
};
#[derive(Debug)]
pub struct ProverTrace<F: PrimeField> {
pub(crate) advice_polys: Vec<Vec<Polynomial<F, Coeff>>>,
pub(crate) instance_polys: Vec<Vec<Polynomial<F, Coeff>>>,
#[allow(dead_code)]
pub(crate) instance_values: Vec<Vec<Polynomial<F, LagrangeCoeff>>>,
pub(crate) vanishing: vanishing::prover::Committed<F>,
pub(crate) lookups: Vec<Vec<lookup::prover::Committed<F>>>,
pub(crate) trashcans: Vec<Vec<trash::prover::Committed<F>>>,
pub(crate) permutations: Vec<permutation::prover::Committed<F>>,
pub(crate) challenges: Vec<F>,
pub(crate) beta: F,
pub(crate) gamma: F,
pub(crate) theta: F,
pub(crate) trash_challenge: F,
pub(crate) y: F,
}
#[derive(Debug)]
pub struct VerifierTrace<F: PrimeField, PCS: PolynomialCommitmentScheme<F>> {
pub(crate) advice_commitments: Vec<Vec<PCS::Commitment>>,
pub(crate) vanishing: vanishing::verifier::Committed<F, PCS>,
pub(crate) lookups: Vec<Vec<lookup::verifier::Committed<F, PCS>>>,
pub(crate) trashcans: Vec<Vec<trash::verifier::Committed<F, PCS>>>,
pub(crate) permutations: Vec<permutation::verifier::Committed<F, PCS>>,
pub(crate) challenges: Vec<F>,
pub(crate) beta: F,
pub(crate) gamma: F,
pub(crate) theta: F,
pub(crate) trash_challenge: F,
pub(crate) y: F,
}