zinc_piop/ideal_check/
structs.rs1use crypto_primitives::PrimeField;
2use zinc_poly::univariate::dynamic::over_field::{DynamicPolyVecF, DynamicPolynomialF};
3use zinc_transcript::traits::{ConstTranscribable, GenTranscribable, Transcribable};
4
5#[derive(Clone, Debug, PartialEq, Eq)]
6pub struct Proof<F: PrimeField> {
7 pub combined_mle_values: Vec<DynamicPolynomialF<F>>,
8}
9
10impl<F> GenTranscribable for Proof<F>
11where
12 F: PrimeField,
13 F::Inner: ConstTranscribable,
14 F::Modulus: ConstTranscribable,
15{
16 fn read_transcription_bytes_exact(bytes: &[u8]) -> Self {
17 let combined_mle_values = DynamicPolyVecF::read_transcription_bytes_exact(bytes).0;
18 Self {
19 combined_mle_values,
20 }
21 }
22
23 fn write_transcription_bytes_exact(&self, buf: &mut [u8]) {
24 DynamicPolyVecF::reinterpret(&self.combined_mle_values)
25 .write_transcription_bytes_exact(buf);
26 }
27}
28
29impl<F> Transcribable for Proof<F>
30where
31 F: PrimeField,
32 F::Inner: ConstTranscribable,
33 F::Modulus: ConstTranscribable,
34{
35 fn get_num_bytes(&self) -> usize {
36 DynamicPolyVecF::reinterpret(&self.combined_mle_values).get_num_bytes()
37 }
38}
39
40#[derive(Clone, Debug)]
41pub struct ProverState<F: PrimeField> {
42 pub evaluation_point: Vec<F>,
43}
44
45#[derive(Clone, Debug)]
46pub struct VerifierSubclaim<F: PrimeField> {
47 pub evaluation_point: Vec<F>,
48 pub values: Vec<DynamicPolynomialF<F>>,
49}