4#include <gtest/gtest.h>
19TEST(smtExample, multiplication_true)
27 builder.set_variable_name(
a.witness_index,
"a");
28 builder.set_variable_name(
b.witness_index,
"b");
43 cr = (two * a1) / (thr * b1);
50TEST(smtExample, multiplication_true_kind)
58 builder.set_variable_name(
a.witness_index,
"a");
59 builder.set_variable_name(
b.witness_index,
"b");
74 cr* thr* b1 == two* a1;
81TEST(smtExample, multiplication_false)
89 builder.set_variable_name(
a.witness_index,
"a");
90 builder.set_variable_name(
b.witness_index,
"b");
107 cr = (two * a1) / (thr * b1);
110 bool res = s.
check();
117 info(
"a = ", vals[
"a"]);
118 info(
"b = ", vals[
"b"]);
119 info(
"c = ", vals[
"c"]);
120 info(
"c_res = ", vals[
"cr"]);
126TEST(smtExample, unique_witness_ext)
132 builder.set_variable_name(
a.witness_index,
"a");
133 builder.set_variable_name(
b.witness_index,
"b");
147 bool res = s.
check();
152 ASSERT_NE(vals[
"z_c1"], vals[
"z_c2"]);
158TEST(smtExample, unique_witness)
164 builder.set_variable_name(
a.witness_index,
"a");
165 builder.set_variable_name(
b.witness_index,
"b");
179 bool res = s.
check();
184 ASSERT_NE(vals[
"z_c1"], vals[
"z_c2"]);
static bool check(const Builder &circuit)
Check the witness satisifies the circuit.
Symbolic Circuit class for Standard Circuit Builder.
static std::pair< UltraCircuit, UltraCircuit > unique_witness(CircuitSchema &circuit_info, Solver *s, TermType type, const std::vector< std::string > &equal={}, bool enable_optimizations=false)
Check your circuit for witness uniqueness.
static std::pair< UltraCircuit, UltraCircuit > unique_witness_ext(CircuitSchema &circuit_info, Solver *s, TermType type, const std::vector< std::string > &equal={}, const std::vector< std::string > ¬_equal={}, const std::vector< std::string > &equal_at_the_same_time={}, const std::vector< std::string > ¬_equal_at_the_same_time={}, bool enable_optimizations=false)
Check your circuit for witness uniqueness.
std::unordered_map< std::string, std::string > model(std::unordered_map< std::string, cvc5::Term > &terms) const
Symbolic term element class.
Entry point for Barretenberg command-line interface.
TEST(MegaCircuitBuilder, CopyConstructor)
UltraCircuitBuilder_< UltraExecutionTraceBlocks > UltraCircuitBuilder
CircuitSchema unpack_from_buffer(const msgpack::sbuffer &buf)
Get the CircuitSchema object.
STerm FFVar(const std::string &name, Solver *slv)
STerm FFConst(const std::string &val, Solver *slv, uint32_t base)
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept
stdlib::witness_t< Builder > witness_t
stdlib::public_witness_t< Builder > pub_witness_t
static field random_element(numeric::RNG *engine=nullptr) noexcept
Serialized state of a circuit.