Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(barretenberg): Graph methods for circuit analysis (part 2) #12110

Closed
wants to merge 49 commits into from

Conversation

DanielKotov
Copy link
Contributor

This PR continues Graph Description for Ultra Circuit Builder.

There were added functions for processing:

  1. auxiliary block (bigfield limb accumulation, bigfield product, RAM/ROM tables read gates)
  2. poseidon2s external and internal blocks.

There were tested primitives like Poseidon2s hash function, Dynamic Array and Bigfield. Poseidon and Dynamic Array have been fully tested. Bigfield has been tested halfway.

There has been completed function for arithmetic block. (q_arith == 3 case), and it processes fix_witness another way.

There was added new filtering mechanism for finalize_circuit() function using tau and range tags, filtering mechanism for RAM/ROM gate and filtering mechanism for variables that were fixed.

Also there was added new data structure for containing information about gates for every variable. It can be helpful in further filtering mechanisms or debugging process.

No vulnerabilities were found by static analyzer.

DanielKotov and others added 30 commits October 2, 2024 16:43
@Rumata888 Rumata888 changed the title feat: Graph methods for circuit analysis (part 2) feat: Graph methods for circuit analysis (part 2) Feb 19, 2025
@Rumata888 Rumata888 changed the title feat: Graph methods for circuit analysis (part 2) feat(barretenberg): Graph methods for circuit analysis (part 2) Feb 19, 2025

TEST(boomerang_ultra_circuit_constructor, test_variable_gates_count_for_decompose)
TEST(ultra_circuit_constructor, test_variable_gates_count_for_decompose)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why have you renamed all of these?


using byte_array_ct = byte_array<Builder>;
using packed_byte_array_ct = packed_byte_array<Builder>;
using field_ct = field_t<Builder>;

/**
all these tests check graph description for sha256 circuits. All circuits have to consist from 1 connected component
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

consist of

using packed_byte_array_pt = packed_byte_array<Builder>;
using field_pt = field_t<Builder>;

void fix_vector(std::vector<field_pt>& vector) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These need comments

@DanielKotov DanielKotov force-pushed the dk/boomerang_value_detection_part2_final branch from 313b5d6 to 29ff134 Compare February 20, 2025 06:32
@Rumata888
Copy link
Contributor

Replaced with #12130

@Rumata888 Rumata888 closed this Feb 21, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants