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
124
125
126
127
128
129
130
//! 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 dense_filter_util;
pub(crate) use dense_filter_util::{
    filter_column_by_index, filter_columns, fold_columns, fold_vals,
};
#[cfg(test)]
mod dense_filter_util_test;

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

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

mod group_by_util;
use group_by_util::aggregate_columns;
#[cfg(test)]
mod group_by_util_test;

mod proof_plan;
pub use proof_plan::ProofPlan;