pub fn prove<EFqSponge: Clone + FqSponge<Fq, G, Fp>, EFrSponge: FrSponge<Fp>, FC: FoldingConfig<Column = GenericColumn, Curve = G, Challenge = PlonkishChallenge>, RNG, const N_WIT: usize, const N_WIT_QUAD: usize, const N_REL: usize, const N_DSEL: usize, const N_FSEL: usize, const N_ALPHAS: usize>(
domain: EvaluationDomains<Fp>,
srs: &PairingSRS<Pairing>,
combined_expr: &FoldingCompatibleExpr<FC>,
folded_instance: RelaxedInstance<G, PlonkishInstance<G, N_WIT, 3, N_ALPHAS>>,
folded_witness: RelaxedWitness<G, PlonkishWitness<N_WIT, N_FSEL, Fp>>,
rng: &mut RNG
) -> Result<Proof<N_WIT_QUAD, N_WIT_QUAD, N_DSEL, N_FSEL, G, KZGProof<Pairing>>, ProverError>where
RNG: RngCore + CryptoRng,