proof_of_sql/base/commitment/
mod.rs1use crate::base::scalar::Scalar;
3use alloc::vec::Vec;
4#[cfg(feature = "blitzar")]
5pub use blitzar::{
6 compute::{init_backend, init_backend_with_config, BackendConfig},
7 proof::InnerProductProof,
8};
9use core::ops::{AddAssign, SubAssign};
10mod committable_column;
11pub use committable_column::CommittableColumn;
12
13mod vec_commitment_ext;
14pub use vec_commitment_ext::{NumColumnsMismatch, VecCommitmentExt};
15
16mod column_bounds;
17pub use column_bounds::{Bounds, ColumnBounds, NegativeBounds};
18
19mod column_commitment_metadata;
20pub use column_commitment_metadata::ColumnCommitmentMetadata;
21
22mod column_commitment_metadata_map;
23pub use column_commitment_metadata_map::{
24 ColumnCommitmentMetadataMap, ColumnCommitmentMetadataMapExt, ColumnCommitmentsMismatch,
25};
26
27mod column_commitments;
28pub use column_commitments::{AppendColumnCommitmentsError, ColumnCommitments, DuplicateIdents};
29
30mod table_commitment;
31pub use table_commitment::{
32 AppendTableCommitmentError, MixedLengthColumns, NegativeRange, TableCommitment,
33 TableCommitmentArithmeticError, TableCommitmentFromColumnsError,
34};
35
36mod query_commitments;
37pub use query_commitments::{QueryCommitments, QueryCommitmentsExt};
38
39#[cfg(test)]
41pub mod naive_commitment;
42
43#[cfg(test)]
45pub mod naive_evaluation_proof;
46
47#[cfg(test)]
48mod naive_commitment_test;
49
50pub trait Commitment:
52 AddAssign
53 + SubAssign
54 + Sized
55 + Default
56 + Clone
57 + core::ops::Neg<Output = Self>
58 + Eq
59 + core::ops::Sub<Output = Self>
60 + core::fmt::Debug
61 + core::marker::Sync
62 + core::marker::Send
63{
64 type Scalar: Scalar
67 + for<'a> core::ops::Mul<&'a Self, Output = Self>
68 + core::ops::Mul<Self, Output = Self>
69 + serde::Serialize
70 + for<'a> serde::Deserialize<'a>;
71
72 type PublicSetup<'a>;
74
75 fn compute_commitments(
83 committable_columns: &[CommittableColumn],
84 offset: usize,
85 setup: &Self::PublicSetup<'_>,
86 ) -> Vec<Self>;
87
88 fn to_transcript_bytes(&self) -> Vec<u8>;
92}
93
94mod commitment_evaluation_proof;
95pub use commitment_evaluation_proof::CommitmentEvaluationProof;
96
97#[cfg(test)]
98pub(crate) mod commitment_evaluation_proof_test;