|
Barretenberg
The ZK-SNARK library at the core of Aztec
|
Show that relation arithmetic has a simple form. More...
#include "barretenberg/ecc/curves/bn254/fr.hpp"#include "barretenberg/ecc/curves/grumpkin/grumpkin.hpp"#include "barretenberg/flavor/generated/ultra_flavor_generated.hpp"#include "barretenberg/relations/delta_range_constraint_relation.hpp"#include "barretenberg/relations/elliptic_relation.hpp"#include "barretenberg/relations/memory_relation.hpp"#include "barretenberg/relations/non_native_field_relation.hpp"#include "barretenberg/relations/permutation_relation.hpp"#include "barretenberg/relations/poseidon2_external_relation.hpp"#include "barretenberg/relations/poseidon2_internal_relation.hpp"#include "barretenberg/relations/relation_parameters.hpp"#include "barretenberg/relations/ultra_arithmetic_relation.hpp"#include <gtest/gtest.h>Go to the source code of this file.
Classes | |
| class | UltraRelationConsistency |
Typedefs | |
| using | FF = fr |
| using | InputElements = UltraFlavor_Generated::AllEntities< FF > |
Show that relation arithmetic has a simple form.
The purpose of this test suite is to show that the identity arithmetic implemented in the Relations is equivalent to a simpler unoptimized version implemented in the tests themselves. This is useful 1) as documentation since the simple implementations here should make the underlying arithmetic easier to see, and 2) as a check that optimizations introduced into the Relations have not changed the result.
For this purpose, we simply feed (the same) random inputs into each of the two implementations and confirm that the outputs match. This does not confirm the correctness of the identity arithmetic (the identities will not be satisfied in general by random inputs) only that the two implementations are equivalent.
Definition in file ultra_relation_consistency.test.cpp.
Definition at line 30 of file ultra_relation_consistency.test.cpp.
| using InputElements = UltraFlavor_Generated::AllEntities<FF> |
Definition at line 35 of file ultra_relation_consistency.test.cpp.
| TEST_F | ( | UltraRelationConsistency | , |
| ArithmeticRelation | |||
| ) |
Definition at line 72 of file ultra_relation_consistency.test.cpp.
| TEST_F | ( | UltraRelationConsistency | , |
| DeltaRangeConstraintRelation | |||
| ) |
Definition at line 199 of file ultra_relation_consistency.test.cpp.
| TEST_F | ( | UltraRelationConsistency | , |
| EllipticRelation | |||
| ) |
Definition at line 238 of file ultra_relation_consistency.test.cpp.
| TEST_F | ( | UltraRelationConsistency | , |
| MemoryRelation | |||
| ) |
Memory Record Check
ROM Consistency Check
RAM Consistency Check
RAM/ROM access check gate
RAM Timestamp Consistency Check
The complete RAM/ROM memory identity
ROM LogUp Sub-Relations
Definition at line 389 of file ultra_relation_consistency.test.cpp.
| TEST_F | ( | UltraRelationConsistency | , |
| NonNativeFieldRelation | |||
| ) |
Definition at line 316 of file ultra_relation_consistency.test.cpp.
| TEST_F | ( | UltraRelationConsistency | , |
| Poseidon2ExternalRelation | |||
| ) |
Definition at line 519 of file ultra_relation_consistency.test.cpp.
| TEST_F | ( | UltraRelationConsistency | , |
| Poseidon2InternalRelation | |||
| ) |
Definition at line 593 of file ultra_relation_consistency.test.cpp.
| TEST_F | ( | UltraRelationConsistency | , |
| UltraPermutationRelation | |||
| ) |
Definition at line 146 of file ultra_relation_consistency.test.cpp.