pub fn prove<F, P, M, Tower, Challenger_>(
system: &EvalClaimSystem<'_, F>,
witnesses: &[M],
transcript: &mut ProverTranscript<Challenger_>,
memoized_data: MemoizedData<'_, P>,
) -> Result<ReducedWitness<P>, Error>where
F: TowerField + PackedTop<Tower>,
P: PackedFieldIndexable<Scalar = F> + PackedExtension<Tower::B1> + PackedExtension<Tower::B8> + PackedExtension<Tower::B16> + PackedExtension<Tower::B32> + PackedExtension<Tower::B64> + PackedExtension<Tower::B128>,
M: MultilinearPoly<P> + Sync,
Tower: TowerFamily<B128 = F>,
Challenger_: Challenger,