pub fn prove<U, F, DomainField, Challenger_, Backend>(
oracles: &mut MultilinearOracleSet<F>,
witness_index: &mut MultilinearExtensionIndex<'_, U, F>,
claims: impl IntoIterator<Item = EvalcheckMultilinearClaim<F>>,
switchover_fn: impl Fn(usize) -> usize + Clone + 'static,
transcript: &mut ProverTranscript<Challenger_>,
domain_factory: impl EvaluationDomainFactory<DomainField>,
backend: &Backend,
) -> Result<Vec<EvalcheckMultilinearClaim<F>>, Error>where
U: UnderlierType + PackScalar<F> + PackScalar<DomainField>,
F: TowerField + ExtensionField<DomainField>,
PackedType<U, F>: PackedFieldIndexable,
DomainField: TowerField,
Challenger_: Challenger,
Backend: ComputationBackend,