1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
//! This module proves provable ASTs.
mod aliased_provable_expr_plan;
pub(crate) use aliased_provable_expr_plan::AliasedProvableExprPlan;

mod filter_result_expr;
pub(crate) use filter_result_expr::FilterResultExpr;

mod add_subtract_expr;
pub(crate) use add_subtract_expr::AddSubtractExpr;
#[cfg(all(test, feature = "blitzar"))]
mod add_subtract_expr_test;

mod aggregate_expr;
pub(crate) use aggregate_expr::AggregateExpr;

mod multiply_expr;
use multiply_expr::MultiplyExpr;
#[cfg(all(test, feature = "blitzar"))]
mod multiply_expr_test;

mod filter_expr;
pub(crate) use filter_expr::FilterExpr;
#[cfg(test)]
pub(crate) use filter_expr::OstensibleFilterExpr;
#[cfg(all(test, feature = "blitzar"))]
mod filter_expr_test;
#[cfg(all(test, feature = "blitzar"))]
mod filter_expr_test_dishonest_prover;

mod bitwise_verification;
use bitwise_verification::*;
#[cfg(test)]
mod bitwise_verification_test;

mod provable_expr_plan;
pub(crate) use provable_expr_plan::ProvableExprPlan;

mod provable_expr;
pub(crate) use provable_expr::ProvableExpr;
#[cfg(all(test, feature = "blitzar"))]
mod provable_expr_test;

mod projection_expr;
pub(crate) use projection_expr::ProjectionExpr;
#[cfg(all(test, feature = "blitzar"))]
mod projection_expr_test;

mod literal_expr;
pub(crate) use literal_expr::LiteralExpr;
#[cfg(all(test, feature = "blitzar"))]
mod literal_expr_test;

mod and_expr;
use and_expr::AndExpr;
#[cfg(all(test, feature = "blitzar"))]
mod and_expr_test;

mod inequality_expr;
use inequality_expr::*;
#[cfg(all(test, feature = "blitzar"))]
mod inequality_expr_test;

mod or_expr;
use or_expr::*;
#[cfg(all(test, feature = "blitzar"))]
mod or_expr_test;

mod not_expr;
use not_expr::NotExpr;
#[cfg(all(test, feature = "blitzar"))]
mod not_expr_test;

mod comparison_util;
pub(crate) use comparison_util::scale_and_subtract;

mod numerical_util;
pub(crate) use numerical_util::{
    add_subtract_columns, multiply_columns, scale_and_add_subtract_eval,
};

mod equals_expr;
use equals_expr::*;
#[cfg(all(test, feature = "blitzar"))]
mod equals_expr_test;

mod sign_expr;
use sign_expr::*;
#[cfg(all(test, feature = "blitzar"))]
mod sign_expr_test;

mod table_expr;
pub(crate) use table_expr::TableExpr;

#[cfg(test)]
pub(crate) mod test_utility;

mod column_expr;
pub(crate) use column_expr::ColumnExpr;
#[cfg(all(test, feature = "blitzar"))]
mod column_expr_test;

mod dense_filter_expr;
pub(crate) use dense_filter_expr::DenseFilterExpr;
#[cfg(test)]
pub(crate) use dense_filter_expr::OstensibleDenseFilterExpr;
#[cfg(all(test, feature = "blitzar"))]
mod dense_filter_expr_test;
#[cfg(all(test, feature = "blitzar"))]
mod dense_filter_expr_test_dishonest_prover;

mod fold_util;
pub(crate) use fold_util::{fold_columns, fold_vals};
#[cfg(test)]
mod fold_util_test;

mod group_by_expr;
pub(crate) use group_by_expr::GroupByExpr;

#[cfg(all(test, feature = "blitzar"))]
mod group_by_expr_test;

mod proof_plan;
pub use proof_plan::ProofPlan;