|
Barretenberg
The ZK-SNARK library at the core of Aztec
|
#include "acir_loader.hpp"#include "barretenberg/smt_verification/circuit/ultra_circuit.hpp"#include "barretenberg/smt_verification/solver/solver.hpp"#include "cvc5/cvc5.h"#include <string>#include <unordered_map>Go to the source code of this file.
Functions | |
| void | debug_solution (smt_solver::Solver *solver, std::unordered_map< std::string, cvc5::Term > terms) |
| Debug helper to print solver assertions and model values. | |
| bool | verify_add (smt_solver::Solver *solver, smt_circuit::UltraCircuit circuit) |
| Verify addition operation: c = a + b. | |
| bool | verify_sub (smt_solver::Solver *solver, smt_circuit::UltraCircuit circuit) |
| Verify subtraction operation: c = a - b. | |
| bool | verify_mul (smt_solver::Solver *solver, smt_circuit::UltraCircuit circuit) |
| Verify multiplication operation: c = a * b. | |
| bool | verify_div (smt_solver::Solver *solver, smt_circuit::UltraCircuit circuit) |
| Verify integer division operation: c = a / b. | |
| bool | verify_div_field (smt_solver::Solver *solver, smt_circuit::UltraCircuit circuit) |
| Verify field division operation: c = a / b (in field) | |
| bool | verify_mod (smt_solver::Solver *solver, smt_circuit::UltraCircuit circuit) |
| Verify modulo operation: c = a mod b. | |
| bool | verify_or (smt_solver::Solver *solver, smt_circuit::UltraCircuit circuit) |
| Verify bitwise OR operation: c = a | b. | |
| bool | verify_and (smt_solver::Solver *solver, smt_circuit::UltraCircuit circuit) |
| Verify bitwise AND operation: c = a & b. | |
| bool | verify_xor (smt_solver::Solver *solver, smt_circuit::UltraCircuit circuit) |
| Verify bitwise XOR operation: c = a ^ b. | |
| bool | verify_not_127 (smt_solver::Solver *solver, smt_circuit::UltraCircuit circuit) |
| Verify NOT operation on 127 bits: b = ~a. | |
| bool | verify_shl32 (smt_solver::Solver *solver, smt_circuit::UltraCircuit circuit) |
| Verify 32-bit left shift operation: c = a << b. | |
| bool | verify_shl64 (smt_solver::Solver *solver, smt_circuit::UltraCircuit circuit) |
| Verify 64-bit left shift operation: c = a << b. | |
| bool | verify_shr (smt_solver::Solver *solver, smt_circuit::UltraCircuit circuit) |
| Verify right shift operation: c = a >> b. | |
| bool | verify_eq_on_equlaity (smt_solver::Solver *solver, smt_circuit::UltraCircuit circuit) |
| Verify equality comparison when values are equal. | |
| bool | verify_eq_on_inequlaity (smt_solver::Solver *solver, smt_circuit::UltraCircuit circuit) |
| Verify equality comparison when values are not equal. | |
| bool | verify_lt (smt_solver::Solver *solver, smt_circuit::UltraCircuit circuit) |
| Verify less than comparison: a < b. | |
| bool | verify_gt (smt_solver::Solver *solver, smt_circuit::UltraCircuit circuit) |
| Verify greater than comparison: a > b. | |
| bool | verify_non_uniqueness_for_casts (smt_solver::Solver *solver, AcirToSmtLoader *loader, smt_circuit::TermType type) |
| Verify non-uniqueness for casts. | |
| void debug_solution | ( | smt_solver::Solver * | solver, |
| std::unordered_map< std::string, cvc5::Term > | terms | ||
| ) |
Debug helper to print solver assertions and model values.
| solver | SMT solver instance |
| terms | Map of term names to CVC5 terms to evaluate |
Definition at line 7 of file formal_proofs.cpp.
| bool verify_add | ( | smt_solver::Solver * | solver, |
| smt_circuit::UltraCircuit | circuit | ||
| ) |
Verify addition operation: c = a + b.
| solver | SMT solver instance |
| circuit | Circuit containing variables a, b, c |
Definition at line 16 of file formal_proofs.cpp.
| bool verify_and | ( | smt_solver::Solver * | solver, |
| smt_circuit::UltraCircuit | circuit | ||
| ) |
Verify bitwise AND operation: c = a & b.
| solver | SMT solver instance |
| circuit | Circuit containing variables a, b, c |
Definition at line 123 of file formal_proofs.cpp.
| bool verify_div | ( | smt_solver::Solver * | solver, |
| smt_circuit::UltraCircuit | circuit | ||
| ) |
Verify integer division operation: c = a / b.
| solver | SMT solver instance |
| circuit | Circuit containing variables a, b, c |
Definition at line 61 of file formal_proofs.cpp.
| bool verify_div_field | ( | smt_solver::Solver * | solver, |
| smt_circuit::UltraCircuit | circuit | ||
| ) |
Verify field division operation: c = a / b (in field)
| solver | SMT solver instance |
| circuit | Circuit containing variables a, b, c |
Definition at line 76 of file formal_proofs.cpp.
| bool verify_eq_on_equlaity | ( | smt_solver::Solver * | solver, |
| smt_circuit::UltraCircuit | circuit | ||
| ) |
Verify equality comparison when values are equal.
| solver | SMT solver instance |
| circuit | Circuit containing variables a, b, c |
Definition at line 215 of file formal_proofs.cpp.
| bool verify_eq_on_inequlaity | ( | smt_solver::Solver * | solver, |
| smt_circuit::UltraCircuit | circuit | ||
| ) |
Verify equality comparison when values are not equal.
| solver | SMT solver instance |
| circuit | Circuit containing variables a, b, c |
Definition at line 230 of file formal_proofs.cpp.
| bool verify_gt | ( | smt_solver::Solver * | solver, |
| smt_circuit::UltraCircuit | circuit | ||
| ) |
Verify greater than comparison: a > b.
| solver | SMT solver instance |
| circuit | Circuit containing variables a, b, c |
Definition at line 260 of file formal_proofs.cpp.
| bool verify_lt | ( | smt_solver::Solver * | solver, |
| smt_circuit::UltraCircuit | circuit | ||
| ) |
Verify less than comparison: a < b.
| solver | SMT solver instance |
| circuit | Circuit containing variables a, b, c |
Definition at line 245 of file formal_proofs.cpp.
| bool verify_mod | ( | smt_solver::Solver * | solver, |
| smt_circuit::UltraCircuit | circuit | ||
| ) |
Verify modulo operation: c = a mod b.
| solver | SMT solver instance |
| circuit | Circuit containing variables a, b, c |
Definition at line 93 of file formal_proofs.cpp.
| bool verify_mul | ( | smt_solver::Solver * | solver, |
| smt_circuit::UltraCircuit | circuit | ||
| ) |
Verify multiplication operation: c = a * b.
| solver | SMT solver instance |
| circuit | Circuit containing variables a, b, c |
Definition at line 46 of file formal_proofs.cpp.
| bool verify_non_uniqueness_for_casts | ( | smt_solver::Solver * | solver, |
| AcirToSmtLoader * | loader, | ||
| smt_circuit::TermType | type | ||
| ) |
Verify non-uniqueness for casts.
| solver | SMT solver instance |
| loader | ACIR loader instance |
| type | Type of term to verify non-uniqueness for |
Definition at line 290 of file formal_proofs.cpp.
| bool verify_not_127 | ( | smt_solver::Solver * | solver, |
| smt_circuit::UltraCircuit | circuit | ||
| ) |
Verify NOT operation on 127 bits: b = ~a.
| solver | SMT solver instance |
| circuit | Circuit containing variables a, b |
Definition at line 154 of file formal_proofs.cpp.
| bool verify_or | ( | smt_solver::Solver * | solver, |
| smt_circuit::UltraCircuit | circuit | ||
| ) |
Verify bitwise OR operation: c = a | b.
| solver | SMT solver instance |
| circuit | Circuit containing variables a, b, c |
Definition at line 108 of file formal_proofs.cpp.
| bool verify_shl32 | ( | smt_solver::Solver * | solver, |
| smt_circuit::UltraCircuit | circuit | ||
| ) |
Verify 32-bit left shift operation: c = a << b.
| solver | SMT solver instance |
| circuit | Circuit containing variables a, b, c |
Definition at line 170 of file formal_proofs.cpp.
| bool verify_shl64 | ( | smt_solver::Solver * | solver, |
| smt_circuit::UltraCircuit | circuit | ||
| ) |
Verify 64-bit left shift operation: c = a << b.
| solver | SMT solver instance |
| circuit | Circuit containing variables a, b, c |
Definition at line 185 of file formal_proofs.cpp.
| bool verify_shr | ( | smt_solver::Solver * | solver, |
| smt_circuit::UltraCircuit | circuit | ||
| ) |
Verify right shift operation: c = a >> b.
| solver | SMT solver instance |
| circuit | Circuit containing variables a, b, c |
Definition at line 200 of file formal_proofs.cpp.
| bool verify_sub | ( | smt_solver::Solver * | solver, |
| smt_circuit::UltraCircuit | circuit | ||
| ) |
Verify subtraction operation: c = a - b.
| solver | SMT solver instance |
| circuit | Circuit containing variables a, b, c |
Definition at line 31 of file formal_proofs.cpp.
| bool verify_xor | ( | smt_solver::Solver * | solver, |
| smt_circuit::UltraCircuit | circuit | ||
| ) |
Verify bitwise XOR operation: c = a ^ b.
| solver | SMT solver instance |
| circuit | Circuit containing variables a, b, c |
Definition at line 138 of file formal_proofs.cpp.