feat: Protogalaxy Decider and complete folding tests#3657
feat: Protogalaxy Decider and complete folding tests#3657codygunton merged 100 commits intomasterfrom
Conversation
2fade37 to
8cb1d9e
Compare
| @@ -240,17 +240,6 @@ jobs: | |||
| name: "Test" | |||
| command: cond_spot_run_test barretenberg-x86_64-linux-clang-assert 32 ./scripts/bb-tests.sh | |||
|
|
|||
There was a problem hiding this comment.
we don't have honk_tests anymore
5775a01 to
ecf84ce
Compare
fac2ea3 to
ecf84ce
Compare
codygunton
left a comment
There was a problem hiding this comment.
Leaving a partial review at EOD so you have the choice to work on this tomorrow.
| * pow(X) = ∏_{0≤l<d} ((1−X_l) + X_l⋅ζ_l) | ||
| * pow(X_0,X_1,..,X_d) = \prod_{0≤l<d} ((1−X_l) + X_l⋅β_l) for a vector {β_0,...,β_{d-1}} | ||
| * | ||
| * @details Let |
There was a problem hiding this comment.
Could you add a sentences saying you're describing sumcheck?
| * of the full hypercube, equals ∏ β_j where j are the bits set to 1 in the binary representation of i | ||
| * We can also see it as the multi-linear extension of the vector \vec{β}. | ||
| * | ||
| * - At round l, we iterate over all remaining vertices (i_{l+1}, ..., i_{d-1}) ∈ {0,1}^{d-l-1}. |
There was a problem hiding this comment.
Round 0:
Round 1:
...
Round
Also: I find this a little confusing. You're taking about sumcheck right? Rather than "remaining vertices" I'd just say we iterate over a boolean hypercube of
There was a problem hiding this comment.
Remaining vertices was a term already in the description, but your suggestion is definitely better, thanks, Also the off by one was in master but yeah it is an off by one
There was a problem hiding this comment.
Tried to further clarify things.
barretenberg/cpp/src/barretenberg/sumcheck/instance/prover_instance.hpp
Outdated
Show resolved
Hide resolved
barretenberg/cpp/src/barretenberg/protogalaxy/protogalaxy_prover.hpp
Outdated
Show resolved
Hide resolved
barretenberg/cpp/src/barretenberg/protogalaxy/protogalaxy_verifier.cpp
Outdated
Show resolved
Hide resolved
barretenberg/cpp/src/barretenberg/protogalaxy/decider_verifier.cpp
Outdated
Show resolved
Hide resolved
| { | ||
| // Precompute the vector of required powers of zeta | ||
| // TODO(luke): Parallelize this | ||
| // Compute the constant contribution of pow polynomials for each edge as the product of c_l and the elements of |
There was a problem hiding this comment.
Can you add more to this comment? Seems like it would be helpful but I'm still confused e.g. c_l is not very explicitly defined anywhere.
There was a problem hiding this comment.
c_l (the notation was already there) is the partial_evaluation_result in the pow polynomial. I renamed it from partial_evaluation_constant to partial_evaluation_result since it's not a constant, it gets updated at every round. Updated the comment
fc2303a to
65c6aeb
Compare
🤖 I have created a release *beep* *boop* --- <details><summary>aztec-packages: 0.18.0</summary> ## [0.18.0](aztec-packages-v0.17.0...aztec-packages-v0.18.0) (2024-01-16) ### ⚠ BREAKING CHANGES * Remove `Directive::Quotient` ([#4019](#4019)) * define key type in maps ([#3841](#3841)) * implement keccakf1600 in brillig ([#3914](#3914)) * add blake3 opcode to brillig ([#3913](#3913)) * Remove opcode supported from the backend ([#3889](#3889)) ### Features * `PartialStateReference` and `StateReference` structs ([#3827](#3827)) ([3ba0369](3ba0369)) * `StateDiffHints` ([#3919](#3919)) ([8774795](8774795)), closes [#3916](#3916) * Acir cleanup ([#3845](#3845)) ([390b84c](390b84c)) * Add ACIR opcodes for ECADD and ECDOUBLE ([#3878](#3878)) ([537630f](537630f)) * Add blake3 opcode to brillig ([#3913](#3913)) ([34fad0a](34fad0a)) * Add data availability oracle ([#3897](#3897)) ([5441753](5441753)), closes [#3890](#3890) * Add str support for args + add name/symbol/decimal to token ([#3862](#3862)) ([0bf5d8c](0bf5d8c)) * Bench bb in pr's, docker shell utils ([#3561](#3561)) ([5408919](5408919)) * Benchmark protogalaxy prover ([#3958](#3958)) ([5843722](5843722)) * Benchmarks for basic functionality and IPA improvements ([#4004](#4004)) ([fd1f619](fd1f619)) * Body hash as buffer in TS + minor cleanup ([#4012](#4012)) ([e28a6bf](e28a6bf)) * Bootstrap cache v2 ([#3876](#3876)) ([331598d](331598d)) * Counters in private functions ([#3850](#3850)) ([23bbf75](23bbf75)) * Generate json blocks for tests ([#3923](#3923)) ([a09fd2a](a09fd2a)) * Implement keccakf1600 in brillig ([#3914](#3914)) ([a182381](a182381)) * Parallel IPA ([#3882](#3882)) ([7002a33](7002a33)) * Pil lookups w/ xor table example ([#3880](#3880)) ([544d24e](544d24e)) * Poseidon2 stdlib impl ([#3551](#3551)) ([50b4a72](50b4a72)) * Protogalaxy Decider and complete folding tests ([#3657](#3657)) ([cfdaf9c](cfdaf9c)) * Reexport `protocol_types` from `aztec-nr` ([#3926](#3926)) ([9bd22f7](9bd22f7)) * Relations vs widgets benchmarking ([#3931](#3931)) ([3af64ef](3af64ef)) * Remove opcode supported from the backend ([#3889](#3889)) ([1fd135c](1fd135c)) * Reorganize acir composer ([#3957](#3957)) ([e6232e8](e6232e8)) * Replace bitwise ORs in `U256:from_bytes32` with addition ([#3947](#3947)) ([efd7660](efd7660)) * Standalone calldata test ([#3842](#3842)) ([7353a35](7353a35)) * Sync with main noir repo ([#3939](#3939)) ([69c7e99](69c7e99)) * Update noir ([#3979](#3979)) ([271de71](271de71)) * Verify state hash is correct before publishing to L1 ([#3915](#3915)) ([a53c261](a53c261)) ### Bug Fixes * **aztec-nr:** Broken nargo url ([#3925](#3925)) ([034bc30](034bc30)) * Back out the buggy branch condition ([#3988](#3988)) ([9f61ed1](9f61ed1)) * Bb unnecessary env var ([#3901](#3901)) ([f127e5a](f127e5a)) * Broken links by paterson1 ([#3902](#3902)) ([6783aaa](6783aaa)) * **cli:** Unbox command should run as release ([#3974](#3974)) ([80c3805](80c3805)) * **cli:** Unbox should set up the accounts package ([#3972](#3972)) ([065e988](065e988)) * Docusaurus start command ([#3968](#3968)) ([87c0b07](87c0b07)) * Dont spam logs with yarn install ([#4027](#4027)) ([949c5ab](949c5ab)) * Fix compilation of `token` box ([#3981](#3981)) ([0f994d0](0f994d0)) * Mirror_noir_subrepo.yml erroring ([#3954](#3954)) ([2ac1b9c](2ac1b9c)) * Quote the glob string for ignore branches for protocol-circuits-gate-diff ([#3990](#3990)) ([a43889d](a43889d)) * Reprocess notes in pxe when a new contract is added ([#3867](#3867)) ([ccbff99](ccbff99)) * Segment tree insertion stats by depth ([#4029](#4029)) ([2787bae](2787bae)) * Store blockhash alongside blocks ([#3950](#3950)) ([12b07fa](12b07fa)), closes [#3870](#3870) * Swap branch exclusion for release-please on report gates diff workflow ([#3994](#3994)) ([70b2ffd](70b2ffd)) * Typos in authwit.md by czepluch ([#3921](#3921)) ([4b9d0f4](4b9d0f4)) * Yellowpaper docusaurus start command ([#3969](#3969)) ([4977cbc](4977cbc)) ### Miscellaneous * Add a link back to `aztec-packages` in noir sync PR ([#4018](#4018)) ([7d89f3b](7d89f3b)) * Catch up note processors could be synced more efficiently ([#3933](#3933)) ([df54f33](df54f33)) * **ci:** Require boxes CI to succeed ([#3983](#3983)) ([93cbea1](93cbea1)) * Cleanup duplicated methods for structs after traits ([#3912](#3912)) ([60b59da](60b59da)) * Cleanup sandbox dependent tests ([#3861](#3861)) ([158c5be](158c5be)) * Codegen acir opcodes after renaming arithmetic to assertzero ([#3896](#3896)) ([c710ce1](c710ce1)) * Define key type in maps ([#3841](#3841)) ([cf15adb](cf15adb)) * Delete the compiler from `noir-compiler` ([#3959](#3959)) ([9aa0986](9aa0986)) * Deploy canary release of bb.js to npm via CCI ([#3917](#3917)) ([bdeb10c](bdeb10c)) * Do not fail jq dependencies check for package with no deps ([#3894](#3894)) ([22c65bf](22c65bf)) * Do not pass redundant txNullifier when computing notes ([#3943](#3943)) ([9355cda](9355cda)) * Do not run CCI on release-please branches ([#3984](#3984)) ([c38dbd2](c38dbd2)) * **docs:** Fix ts code in token bridge tutorial ([#3888](#3888)) ([f53f8ed](f53f8ed)) * **docs:** Move map keys to new release in migration guide ([#3977](#3977)) ([6356d94](6356d94)) * **docs:** Update missing @aztec/accounts missing import in testing.md ([#3903](#3903)) ([755668a](755668a)) * Document `witness_buf_to_witness_data` ([#3940](#3940)) ([fbaa726](fbaa726)) * End to end test node & pxe persistence ([#3911](#3911)) ([6164ccd](6164ccd)) * Enforce immutable yarn installs in CI ([#3964](#3964)) ([f3104ac](f3104ac)) * Fix rust tests ([#3963](#3963)) ([a907c3b](a907c3b)) * Fix sidebar index links ([#3942](#3942)) ([984f1f8](984f1f8)) * Git subrepo commit (merge) noir ([#3955](#3955)) ([2c2bc69](2c2bc69)) * Introduce EventSelector class ([#3960](#3960)) ([7315f2c](7315f2c)) * Investigate P2P test ([#3929](#3929)) ([0fca2c4](0fca2c4)) * Move types to circuit-types ([#3967](#3967)) ([f81b7c0](f81b7c0)) * Persistence uses TokenContract ([#3930](#3930)) ([1a052c4](1a052c4)) * Pull in noir from upstream ([#3904](#3904)) ([ab07e7e](ab07e7e)) * Recreated types package without circuits.js dependency ([#3970](#3970)) ([fc1d539](fc1d539)) * Refactor serialisation functions and sibling paths ([#3980](#3980)) ([1a936fc](1a936fc)) * Remove 'extern template's, expand macros ([#3953](#3953)) ([5fe9908](5fe9908)) * Remove `Directive::Quotient` ([#4019](#4019)) ([824d76f](824d76f)) * Remove sandbox and cli npm pkgs ([#3567](#3567)) ([a8cf1bf](a8cf1bf)) * Reorganize benchmarks ([#3909](#3909)) ([730766b](730766b)) * Replace `AztecU128` with `U128` ([#3951](#3951)) ([e3b288d](e3b288d)) * Replace relative paths to noir-protocol-circuits ([2c25f04](2c25f04)) * Replace relative paths to noir-protocol-circuits ([0c8b770](0c8b770)) * Replace relative paths to noir-protocol-circuits ([d3819ba](d3819ba)) * Standardise toml parsers ([#3910](#3910)) ([963035f](963035f)) * Sync noir ([#4025](#4025)) ([4e90d7b](4e90d7b)) * Sync Noir repo ([#4020](#4020)) ([876603e](876603e)) * **yellowpaper:** Cleanup avm sidebar, fix filename case ([#3952](#3952)) ([5211060](5211060)) * Yp docs sidebar (with some auto-formatting) ([#3893](#3893)) ([f7b007a](f7b007a)) ### Documentation * Noir git subrepo usage ([#3962](#3962)) ([2e4c9de](2e4c9de)) * Streamlined pr template ([#3932](#3932)) ([5ec1559](5ec1559)) * **yellowpaper:** Avm call pointers, bytecode lookups, circuit io ([#3898](#3898)) ([45e1ed2](45e1ed2)) * **yellowpaper:** Avm circuit architecture ([#3934](#3934)) ([6aed1d0](6aed1d0)) * **yellowpaper:** First draft of avm circuit memory ([#3865](#3865)) ([f689297](f689297)) * **yellowpaper:** Logs ([#4016](#4016)) ([d734c79](d734c79)) * **yellowpaper:** Update AVM spec for with "daGasLeft", some cleanup ([#3956](#3956)) ([a9537fb](a9537fb)) </details> <details><summary>barretenberg.js: 0.18.0</summary> ## [0.18.0](barretenberg.js-v0.17.0...barretenberg.js-v0.18.0) (2024-01-16) ### Features * Bootstrap cache v2 ([#3876](#3876)) ([331598d](331598d)) ### Bug Fixes * Dont spam logs with yarn install ([#4027](#4027)) ([949c5ab](949c5ab)) </details> <details><summary>barretenberg: 0.18.0</summary> ## [0.18.0](barretenberg-v0.17.0...barretenberg-v0.18.0) (2024-01-16) ### ⚠ BREAKING CHANGES * Remove `Directive::Quotient` ([#4019](#4019)) * implement keccakf1600 in brillig ([#3914](#3914)) * add blake3 opcode to brillig ([#3913](#3913)) * Remove opcode supported from the backend ([#3889](#3889)) ### Features * Acir cleanup ([#3845](#3845)) ([390b84c](390b84c)) * Add ACIR opcodes for ECADD and ECDOUBLE ([#3878](#3878)) ([537630f](537630f)) * Add blake3 opcode to brillig ([#3913](#3913)) ([34fad0a](34fad0a)) * Bench bb in pr's, docker shell utils ([#3561](#3561)) ([5408919](5408919)) * Benchmark protogalaxy prover ([#3958](#3958)) ([5843722](5843722)) * Benchmarks for basic functionality and IPA improvements ([#4004](#4004)) ([fd1f619](fd1f619)) * Bootstrap cache v2 ([#3876](#3876)) ([331598d](331598d)) * Implement keccakf1600 in brillig ([#3914](#3914)) ([a182381](a182381)) * Parallel IPA ([#3882](#3882)) ([7002a33](7002a33)) * Pil lookups w/ xor table example ([#3880](#3880)) ([544d24e](544d24e)) * Poseidon2 stdlib impl ([#3551](#3551)) ([50b4a72](50b4a72)) * Protogalaxy Decider and complete folding tests ([#3657](#3657)) ([cfdaf9c](cfdaf9c)) * Relations vs widgets benchmarking ([#3931](#3931)) ([3af64ef](3af64ef)) * Remove opcode supported from the backend ([#3889](#3889)) ([1fd135c](1fd135c)) * Reorganize acir composer ([#3957](#3957)) ([e6232e8](e6232e8)) * Standalone calldata test ([#3842](#3842)) ([7353a35](7353a35)) ### Bug Fixes * Bb unnecessary env var ([#3901](#3901)) ([f127e5a](f127e5a)) ### Miscellaneous * Codegen acir opcodes after renaming arithmetic to assertzero ([#3896](#3896)) ([c710ce1](c710ce1)) * Document `witness_buf_to_witness_data` ([#3940](#3940)) ([fbaa726](fbaa726)) * Remove 'extern template's, expand macros ([#3953](#3953)) ([5fe9908](5fe9908)) * Remove `Directive::Quotient` ([#4019](#4019)) ([824d76f](824d76f)) * Reorganize benchmarks ([#3909](#3909)) ([730766b](730766b)) </details> --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).
🤖 I have created a release *beep* *boop* --- <details><summary>aztec-packages: 0.18.0</summary> ## [0.18.0](AztecProtocol/aztec-packages@aztec-packages-v0.17.0...aztec-packages-v0.18.0) (2024-01-16) ### ⚠ BREAKING CHANGES * Remove `Directive::Quotient` ([#4019](AztecProtocol/aztec-packages#4019)) * define key type in maps ([#3841](AztecProtocol/aztec-packages#3841)) * implement keccakf1600 in brillig ([#3914](AztecProtocol/aztec-packages#3914)) * add blake3 opcode to brillig ([#3913](AztecProtocol/aztec-packages#3913)) * Remove opcode supported from the backend ([#3889](AztecProtocol/aztec-packages#3889)) ### Features * `PartialStateReference` and `StateReference` structs ([#3827](AztecProtocol/aztec-packages#3827)) ([3ba0369](AztecProtocol/aztec-packages@3ba0369)) * `StateDiffHints` ([#3919](AztecProtocol/aztec-packages#3919)) ([8774795](AztecProtocol/aztec-packages@8774795)), closes [#3916](AztecProtocol/aztec-packages#3916) * Acir cleanup ([#3845](AztecProtocol/aztec-packages#3845)) ([390b84c](AztecProtocol/aztec-packages@390b84c)) * Add ACIR opcodes for ECADD and ECDOUBLE ([#3878](AztecProtocol/aztec-packages#3878)) ([537630f](AztecProtocol/aztec-packages@537630f)) * Add blake3 opcode to brillig ([#3913](AztecProtocol/aztec-packages#3913)) ([34fad0a](AztecProtocol/aztec-packages@34fad0a)) * Add data availability oracle ([#3897](AztecProtocol/aztec-packages#3897)) ([5441753](AztecProtocol/aztec-packages@5441753)), closes [#3890](AztecProtocol/aztec-packages#3890) * Add str support for args + add name/symbol/decimal to token ([#3862](AztecProtocol/aztec-packages#3862)) ([0bf5d8c](AztecProtocol/aztec-packages@0bf5d8c)) * Bench bb in pr's, docker shell utils ([#3561](AztecProtocol/aztec-packages#3561)) ([5408919](AztecProtocol/aztec-packages@5408919)) * Benchmark protogalaxy prover ([#3958](AztecProtocol/aztec-packages#3958)) ([5843722](AztecProtocol/aztec-packages@5843722)) * Benchmarks for basic functionality and IPA improvements ([#4004](AztecProtocol/aztec-packages#4004)) ([fd1f619](AztecProtocol/aztec-packages@fd1f619)) * Body hash as buffer in TS + minor cleanup ([#4012](AztecProtocol/aztec-packages#4012)) ([e28a6bf](AztecProtocol/aztec-packages@e28a6bf)) * Bootstrap cache v2 ([#3876](AztecProtocol/aztec-packages#3876)) ([331598d](AztecProtocol/aztec-packages@331598d)) * Counters in private functions ([#3850](AztecProtocol/aztec-packages#3850)) ([23bbf75](AztecProtocol/aztec-packages@23bbf75)) * Generate json blocks for tests ([#3923](AztecProtocol/aztec-packages#3923)) ([a09fd2a](AztecProtocol/aztec-packages@a09fd2a)) * Implement keccakf1600 in brillig ([#3914](AztecProtocol/aztec-packages#3914)) ([a182381](AztecProtocol/aztec-packages@a182381)) * Parallel IPA ([#3882](AztecProtocol/aztec-packages#3882)) ([7002a33](AztecProtocol/aztec-packages@7002a33)) * Pil lookups w/ xor table example ([#3880](AztecProtocol/aztec-packages#3880)) ([544d24e](AztecProtocol/aztec-packages@544d24e)) * Poseidon2 stdlib impl ([#3551](AztecProtocol/aztec-packages#3551)) ([50b4a72](AztecProtocol/aztec-packages@50b4a72)) * Protogalaxy Decider and complete folding tests ([#3657](AztecProtocol/aztec-packages#3657)) ([cfdaf9c](AztecProtocol/aztec-packages@cfdaf9c)) * Reexport `protocol_types` from `aztec-nr` ([#3926](AztecProtocol/aztec-packages#3926)) ([9bd22f7](AztecProtocol/aztec-packages@9bd22f7)) * Relations vs widgets benchmarking ([#3931](AztecProtocol/aztec-packages#3931)) ([3af64ef](AztecProtocol/aztec-packages@3af64ef)) * Remove opcode supported from the backend ([#3889](AztecProtocol/aztec-packages#3889)) ([1fd135c](AztecProtocol/aztec-packages@1fd135c)) * Reorganize acir composer ([#3957](AztecProtocol/aztec-packages#3957)) ([e6232e8](AztecProtocol/aztec-packages@e6232e8)) * Replace bitwise ORs in `U256:from_bytes32` with addition ([#3947](AztecProtocol/aztec-packages#3947)) ([efd7660](AztecProtocol/aztec-packages@efd7660)) * Standalone calldata test ([#3842](AztecProtocol/aztec-packages#3842)) ([7353a35](AztecProtocol/aztec-packages@7353a35)) * Sync with main noir repo ([#3939](AztecProtocol/aztec-packages#3939)) ([69c7e99](AztecProtocol/aztec-packages@69c7e99)) * Update noir ([#3979](AztecProtocol/aztec-packages#3979)) ([271de71](AztecProtocol/aztec-packages@271de71)) * Verify state hash is correct before publishing to L1 ([#3915](AztecProtocol/aztec-packages#3915)) ([a53c261](AztecProtocol/aztec-packages@a53c261)) ### Bug Fixes * **aztec-nr:** Broken nargo url ([#3925](AztecProtocol/aztec-packages#3925)) ([034bc30](AztecProtocol/aztec-packages@034bc30)) * Back out the buggy branch condition ([#3988](AztecProtocol/aztec-packages#3988)) ([9f61ed1](AztecProtocol/aztec-packages@9f61ed1)) * Bb unnecessary env var ([#3901](AztecProtocol/aztec-packages#3901)) ([f127e5a](AztecProtocol/aztec-packages@f127e5a)) * Broken links by paterson1 ([#3902](AztecProtocol/aztec-packages#3902)) ([6783aaa](AztecProtocol/aztec-packages@6783aaa)) * **cli:** Unbox command should run as release ([#3974](AztecProtocol/aztec-packages#3974)) ([80c3805](AztecProtocol/aztec-packages@80c3805)) * **cli:** Unbox should set up the accounts package ([#3972](AztecProtocol/aztec-packages#3972)) ([065e988](AztecProtocol/aztec-packages@065e988)) * Docusaurus start command ([#3968](AztecProtocol/aztec-packages#3968)) ([87c0b07](AztecProtocol/aztec-packages@87c0b07)) * Dont spam logs with yarn install ([#4027](AztecProtocol/aztec-packages#4027)) ([949c5ab](AztecProtocol/aztec-packages@949c5ab)) * Fix compilation of `token` box ([#3981](AztecProtocol/aztec-packages#3981)) ([0f994d0](AztecProtocol/aztec-packages@0f994d0)) * Mirror_noir_subrepo.yml erroring ([#3954](AztecProtocol/aztec-packages#3954)) ([2ac1b9c](AztecProtocol/aztec-packages@2ac1b9c)) * Quote the glob string for ignore branches for protocol-circuits-gate-diff ([#3990](AztecProtocol/aztec-packages#3990)) ([a43889d](AztecProtocol/aztec-packages@a43889d)) * Reprocess notes in pxe when a new contract is added ([#3867](AztecProtocol/aztec-packages#3867)) ([ccbff99](AztecProtocol/aztec-packages@ccbff99)) * Segment tree insertion stats by depth ([#4029](AztecProtocol/aztec-packages#4029)) ([2787bae](AztecProtocol/aztec-packages@2787bae)) * Store blockhash alongside blocks ([#3950](AztecProtocol/aztec-packages#3950)) ([12b07fa](AztecProtocol/aztec-packages@12b07fa)), closes [#3870](AztecProtocol/aztec-packages#3870) * Swap branch exclusion for release-please on report gates diff workflow ([#3994](AztecProtocol/aztec-packages#3994)) ([70b2ffd](AztecProtocol/aztec-packages@70b2ffd)) * Typos in authwit.md by czepluch ([#3921](AztecProtocol/aztec-packages#3921)) ([4b9d0f4](AztecProtocol/aztec-packages@4b9d0f4)) * Yellowpaper docusaurus start command ([#3969](AztecProtocol/aztec-packages#3969)) ([4977cbc](AztecProtocol/aztec-packages@4977cbc)) ### Miscellaneous * Add a link back to `aztec-packages` in noir sync PR ([#4018](AztecProtocol/aztec-packages#4018)) ([7d89f3b](AztecProtocol/aztec-packages@7d89f3b)) * Catch up note processors could be synced more efficiently ([#3933](AztecProtocol/aztec-packages#3933)) ([df54f33](AztecProtocol/aztec-packages@df54f33)) * **ci:** Require boxes CI to succeed ([#3983](AztecProtocol/aztec-packages#3983)) ([93cbea1](AztecProtocol/aztec-packages@93cbea1)) * Cleanup duplicated methods for structs after traits ([#3912](AztecProtocol/aztec-packages#3912)) ([60b59da](AztecProtocol/aztec-packages@60b59da)) * Cleanup sandbox dependent tests ([#3861](AztecProtocol/aztec-packages#3861)) ([158c5be](AztecProtocol/aztec-packages@158c5be)) * Codegen acir opcodes after renaming arithmetic to assertzero ([#3896](AztecProtocol/aztec-packages#3896)) ([c710ce1](AztecProtocol/aztec-packages@c710ce1)) * Define key type in maps ([#3841](AztecProtocol/aztec-packages#3841)) ([cf15adb](AztecProtocol/aztec-packages@cf15adb)) * Delete the compiler from `noir-compiler` ([#3959](AztecProtocol/aztec-packages#3959)) ([9aa0986](AztecProtocol/aztec-packages@9aa0986)) * Deploy canary release of bb.js to npm via CCI ([#3917](AztecProtocol/aztec-packages#3917)) ([bdeb10c](AztecProtocol/aztec-packages@bdeb10c)) * Do not fail jq dependencies check for package with no deps ([#3894](AztecProtocol/aztec-packages#3894)) ([22c65bf](AztecProtocol/aztec-packages@22c65bf)) * Do not pass redundant txNullifier when computing notes ([#3943](AztecProtocol/aztec-packages#3943)) ([9355cda](AztecProtocol/aztec-packages@9355cda)) * Do not run CCI on release-please branches ([#3984](AztecProtocol/aztec-packages#3984)) ([c38dbd2](AztecProtocol/aztec-packages@c38dbd2)) * **docs:** Fix ts code in token bridge tutorial ([#3888](AztecProtocol/aztec-packages#3888)) ([f53f8ed](AztecProtocol/aztec-packages@f53f8ed)) * **docs:** Move map keys to new release in migration guide ([#3977](AztecProtocol/aztec-packages#3977)) ([6356d94](AztecProtocol/aztec-packages@6356d94)) * **docs:** Update missing @aztec/accounts missing import in testing.md ([#3903](AztecProtocol/aztec-packages#3903)) ([755668a](AztecProtocol/aztec-packages@755668a)) * Document `witness_buf_to_witness_data` ([#3940](AztecProtocol/aztec-packages#3940)) ([fbaa726](AztecProtocol/aztec-packages@fbaa726)) * End to end test node & pxe persistence ([#3911](AztecProtocol/aztec-packages#3911)) ([6164ccd](AztecProtocol/aztec-packages@6164ccd)) * Enforce immutable yarn installs in CI ([#3964](AztecProtocol/aztec-packages#3964)) ([f3104ac](AztecProtocol/aztec-packages@f3104ac)) * Fix rust tests ([#3963](AztecProtocol/aztec-packages#3963)) ([a907c3b](AztecProtocol/aztec-packages@a907c3b)) * Fix sidebar index links ([#3942](AztecProtocol/aztec-packages#3942)) ([984f1f8](AztecProtocol/aztec-packages@984f1f8)) * Git subrepo commit (merge) noir ([#3955](AztecProtocol/aztec-packages#3955)) ([2c2bc69](AztecProtocol/aztec-packages@2c2bc69)) * Introduce EventSelector class ([#3960](AztecProtocol/aztec-packages#3960)) ([7315f2c](AztecProtocol/aztec-packages@7315f2c)) * Investigate P2P test ([#3929](AztecProtocol/aztec-packages#3929)) ([0fca2c4](AztecProtocol/aztec-packages@0fca2c4)) * Move types to circuit-types ([#3967](AztecProtocol/aztec-packages#3967)) ([f81b7c0](AztecProtocol/aztec-packages@f81b7c0)) * Persistence uses TokenContract ([#3930](AztecProtocol/aztec-packages#3930)) ([1a052c4](AztecProtocol/aztec-packages@1a052c4)) * Pull in noir from upstream ([#3904](AztecProtocol/aztec-packages#3904)) ([ab07e7e](AztecProtocol/aztec-packages@ab07e7e)) * Recreated types package without circuits.js dependency ([#3970](AztecProtocol/aztec-packages#3970)) ([fc1d539](AztecProtocol/aztec-packages@fc1d539)) * Refactor serialisation functions and sibling paths ([#3980](AztecProtocol/aztec-packages#3980)) ([1a936fc](AztecProtocol/aztec-packages@1a936fc)) * Remove 'extern template's, expand macros ([#3953](AztecProtocol/aztec-packages#3953)) ([5fe9908](AztecProtocol/aztec-packages@5fe9908)) * Remove `Directive::Quotient` ([#4019](AztecProtocol/aztec-packages#4019)) ([824d76f](AztecProtocol/aztec-packages@824d76f)) * Remove sandbox and cli npm pkgs ([#3567](AztecProtocol/aztec-packages#3567)) ([a8cf1bf](AztecProtocol/aztec-packages@a8cf1bf)) * Reorganize benchmarks ([#3909](AztecProtocol/aztec-packages#3909)) ([730766b](AztecProtocol/aztec-packages@730766b)) * Replace `AztecU128` with `U128` ([#3951](AztecProtocol/aztec-packages#3951)) ([e3b288d](AztecProtocol/aztec-packages@e3b288d)) * Replace relative paths to noir-protocol-circuits ([2c25f04](AztecProtocol/aztec-packages@2c25f04)) * Replace relative paths to noir-protocol-circuits ([0c8b770](AztecProtocol/aztec-packages@0c8b770)) * Replace relative paths to noir-protocol-circuits ([d3819ba](AztecProtocol/aztec-packages@d3819ba)) * Standardise toml parsers ([#3910](AztecProtocol/aztec-packages#3910)) ([963035f](AztecProtocol/aztec-packages@963035f)) * Sync noir ([#4025](AztecProtocol/aztec-packages#4025)) ([4e90d7b](AztecProtocol/aztec-packages@4e90d7b)) * Sync Noir repo ([#4020](AztecProtocol/aztec-packages#4020)) ([876603e](AztecProtocol/aztec-packages@876603e)) * **yellowpaper:** Cleanup avm sidebar, fix filename case ([#3952](AztecProtocol/aztec-packages#3952)) ([5211060](AztecProtocol/aztec-packages@5211060)) * Yp docs sidebar (with some auto-formatting) ([#3893](AztecProtocol/aztec-packages#3893)) ([f7b007a](AztecProtocol/aztec-packages@f7b007a)) ### Documentation * Noir git subrepo usage ([#3962](AztecProtocol/aztec-packages#3962)) ([2e4c9de](AztecProtocol/aztec-packages@2e4c9de)) * Streamlined pr template ([#3932](AztecProtocol/aztec-packages#3932)) ([5ec1559](AztecProtocol/aztec-packages@5ec1559)) * **yellowpaper:** Avm call pointers, bytecode lookups, circuit io ([#3898](AztecProtocol/aztec-packages#3898)) ([45e1ed2](AztecProtocol/aztec-packages@45e1ed2)) * **yellowpaper:** Avm circuit architecture ([#3934](AztecProtocol/aztec-packages#3934)) ([6aed1d0](AztecProtocol/aztec-packages@6aed1d0)) * **yellowpaper:** First draft of avm circuit memory ([#3865](AztecProtocol/aztec-packages#3865)) ([f689297](AztecProtocol/aztec-packages@f689297)) * **yellowpaper:** Logs ([#4016](AztecProtocol/aztec-packages#4016)) ([d734c79](AztecProtocol/aztec-packages@d734c79)) * **yellowpaper:** Update AVM spec for with "daGasLeft", some cleanup ([#3956](AztecProtocol/aztec-packages#3956)) ([a9537fb](AztecProtocol/aztec-packages@a9537fb)) </details> <details><summary>barretenberg.js: 0.18.0</summary> ## [0.18.0](AztecProtocol/aztec-packages@barretenberg.js-v0.17.0...barretenberg.js-v0.18.0) (2024-01-16) ### Features * Bootstrap cache v2 ([#3876](AztecProtocol/aztec-packages#3876)) ([331598d](AztecProtocol/aztec-packages@331598d)) ### Bug Fixes * Dont spam logs with yarn install ([#4027](AztecProtocol/aztec-packages#4027)) ([949c5ab](AztecProtocol/aztec-packages@949c5ab)) </details> <details><summary>barretenberg: 0.18.0</summary> ## [0.18.0](AztecProtocol/aztec-packages@barretenberg-v0.17.0...barretenberg-v0.18.0) (2024-01-16) ### ⚠ BREAKING CHANGES * Remove `Directive::Quotient` ([#4019](AztecProtocol/aztec-packages#4019)) * implement keccakf1600 in brillig ([#3914](AztecProtocol/aztec-packages#3914)) * add blake3 opcode to brillig ([#3913](AztecProtocol/aztec-packages#3913)) * Remove opcode supported from the backend ([#3889](AztecProtocol/aztec-packages#3889)) ### Features * Acir cleanup ([#3845](AztecProtocol/aztec-packages#3845)) ([390b84c](AztecProtocol/aztec-packages@390b84c)) * Add ACIR opcodes for ECADD and ECDOUBLE ([#3878](AztecProtocol/aztec-packages#3878)) ([537630f](AztecProtocol/aztec-packages@537630f)) * Add blake3 opcode to brillig ([#3913](AztecProtocol/aztec-packages#3913)) ([34fad0a](AztecProtocol/aztec-packages@34fad0a)) * Bench bb in pr's, docker shell utils ([#3561](AztecProtocol/aztec-packages#3561)) ([5408919](AztecProtocol/aztec-packages@5408919)) * Benchmark protogalaxy prover ([#3958](AztecProtocol/aztec-packages#3958)) ([5843722](AztecProtocol/aztec-packages@5843722)) * Benchmarks for basic functionality and IPA improvements ([#4004](AztecProtocol/aztec-packages#4004)) ([fd1f619](AztecProtocol/aztec-packages@fd1f619)) * Bootstrap cache v2 ([#3876](AztecProtocol/aztec-packages#3876)) ([331598d](AztecProtocol/aztec-packages@331598d)) * Implement keccakf1600 in brillig ([#3914](AztecProtocol/aztec-packages#3914)) ([a182381](AztecProtocol/aztec-packages@a182381)) * Parallel IPA ([#3882](AztecProtocol/aztec-packages#3882)) ([7002a33](AztecProtocol/aztec-packages@7002a33)) * Pil lookups w/ xor table example ([#3880](AztecProtocol/aztec-packages#3880)) ([544d24e](AztecProtocol/aztec-packages@544d24e)) * Poseidon2 stdlib impl ([#3551](AztecProtocol/aztec-packages#3551)) ([50b4a72](AztecProtocol/aztec-packages@50b4a72)) * Protogalaxy Decider and complete folding tests ([#3657](AztecProtocol/aztec-packages#3657)) ([cfdaf9c](AztecProtocol/aztec-packages@cfdaf9c)) * Relations vs widgets benchmarking ([#3931](AztecProtocol/aztec-packages#3931)) ([3af64ef](AztecProtocol/aztec-packages@3af64ef)) * Remove opcode supported from the backend ([#3889](AztecProtocol/aztec-packages#3889)) ([1fd135c](AztecProtocol/aztec-packages@1fd135c)) * Reorganize acir composer ([#3957](AztecProtocol/aztec-packages#3957)) ([e6232e8](AztecProtocol/aztec-packages@e6232e8)) * Standalone calldata test ([#3842](AztecProtocol/aztec-packages#3842)) ([7353a35](AztecProtocol/aztec-packages@7353a35)) ### Bug Fixes * Bb unnecessary env var ([#3901](AztecProtocol/aztec-packages#3901)) ([f127e5a](AztecProtocol/aztec-packages@f127e5a)) ### Miscellaneous * Codegen acir opcodes after renaming arithmetic to assertzero ([#3896](AztecProtocol/aztec-packages#3896)) ([c710ce1](AztecProtocol/aztec-packages@c710ce1)) * Document `witness_buf_to_witness_data` ([#3940](AztecProtocol/aztec-packages#3940)) ([fbaa726](AztecProtocol/aztec-packages@fbaa726)) * Remove 'extern template's, expand macros ([#3953](AztecProtocol/aztec-packages#3953)) ([5fe9908](AztecProtocol/aztec-packages@5fe9908)) * Remove `Directive::Quotient` ([#4019](AztecProtocol/aztec-packages#4019)) ([824d76f](AztecProtocol/aztec-packages@824d76f)) * Reorganize benchmarks ([#3909](AztecProtocol/aztec-packages#3909)) ([730766b](AztecProtocol/aztec-packages@730766b)) </details> --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).
) This PR introduces the Protogalaxy decider, now having a complete proof of concept of the folding protocol for Ultra instances. To enable this, sumcheck has been modified to work with the same power polynomial as in protogalaxy paper and can be initialised with a custom `target_sum`. Moreover, we now use different batching challenges for each subrelation in sumcheck, essential to ensure a reasonable degree of the combiner polynomial. Additional: Minor bug fixed in the computation of \vec{\beta*}. Resolves AztecProtocol/barretenberg#772. Resolves AztecProtocol/barretenberg#691.
🤖 I have created a release *beep* *boop* --- <details><summary>aztec-packages: 0.18.0</summary> ## [0.18.0](AztecProtocol/aztec-packages@aztec-packages-v0.17.0...aztec-packages-v0.18.0) (2024-01-16) ### ⚠ BREAKING CHANGES * Remove `Directive::Quotient` ([AztecProtocol#4019](AztecProtocol#4019)) * define key type in maps ([AztecProtocol#3841](AztecProtocol#3841)) * implement keccakf1600 in brillig ([AztecProtocol#3914](AztecProtocol#3914)) * add blake3 opcode to brillig ([AztecProtocol#3913](AztecProtocol#3913)) * Remove opcode supported from the backend ([AztecProtocol#3889](AztecProtocol#3889)) ### Features * `PartialStateReference` and `StateReference` structs ([AztecProtocol#3827](AztecProtocol#3827)) ([3ba0369](AztecProtocol@3ba0369)) * `StateDiffHints` ([AztecProtocol#3919](AztecProtocol#3919)) ([8774795](AztecProtocol@8774795)), closes [AztecProtocol#3916](AztecProtocol#3916) * Acir cleanup ([AztecProtocol#3845](AztecProtocol#3845)) ([390b84c](AztecProtocol@390b84c)) * Add ACIR opcodes for ECADD and ECDOUBLE ([AztecProtocol#3878](AztecProtocol#3878)) ([537630f](AztecProtocol@537630f)) * Add blake3 opcode to brillig ([AztecProtocol#3913](AztecProtocol#3913)) ([34fad0a](AztecProtocol@34fad0a)) * Add data availability oracle ([AztecProtocol#3897](AztecProtocol#3897)) ([5441753](AztecProtocol@5441753)), closes [AztecProtocol#3890](AztecProtocol#3890) * Add str support for args + add name/symbol/decimal to token ([AztecProtocol#3862](AztecProtocol#3862)) ([0bf5d8c](AztecProtocol@0bf5d8c)) * Bench bb in pr's, docker shell utils ([AztecProtocol#3561](AztecProtocol#3561)) ([5408919](AztecProtocol@5408919)) * Benchmark protogalaxy prover ([AztecProtocol#3958](AztecProtocol#3958)) ([5843722](AztecProtocol@5843722)) * Benchmarks for basic functionality and IPA improvements ([AztecProtocol#4004](AztecProtocol#4004)) ([fd1f619](AztecProtocol@fd1f619)) * Body hash as buffer in TS + minor cleanup ([AztecProtocol#4012](AztecProtocol#4012)) ([e28a6bf](AztecProtocol@e28a6bf)) * Bootstrap cache v2 ([AztecProtocol#3876](AztecProtocol#3876)) ([331598d](AztecProtocol@331598d)) * Counters in private functions ([AztecProtocol#3850](AztecProtocol#3850)) ([23bbf75](AztecProtocol@23bbf75)) * Generate json blocks for tests ([AztecProtocol#3923](AztecProtocol#3923)) ([a09fd2a](AztecProtocol@a09fd2a)) * Implement keccakf1600 in brillig ([AztecProtocol#3914](AztecProtocol#3914)) ([a182381](AztecProtocol@a182381)) * Parallel IPA ([AztecProtocol#3882](AztecProtocol#3882)) ([7002a33](AztecProtocol@7002a33)) * Pil lookups w/ xor table example ([AztecProtocol#3880](AztecProtocol#3880)) ([544d24e](AztecProtocol@544d24e)) * Poseidon2 stdlib impl ([AztecProtocol#3551](AztecProtocol#3551)) ([50b4a72](AztecProtocol@50b4a72)) * Protogalaxy Decider and complete folding tests ([AztecProtocol#3657](AztecProtocol#3657)) ([cfdaf9c](AztecProtocol@cfdaf9c)) * Reexport `protocol_types` from `aztec-nr` ([AztecProtocol#3926](AztecProtocol#3926)) ([9bd22f7](AztecProtocol@9bd22f7)) * Relations vs widgets benchmarking ([AztecProtocol#3931](AztecProtocol#3931)) ([3af64ef](AztecProtocol@3af64ef)) * Remove opcode supported from the backend ([AztecProtocol#3889](AztecProtocol#3889)) ([1fd135c](AztecProtocol@1fd135c)) * Reorganize acir composer ([AztecProtocol#3957](AztecProtocol#3957)) ([e6232e8](AztecProtocol@e6232e8)) * Replace bitwise ORs in `U256:from_bytes32` with addition ([AztecProtocol#3947](AztecProtocol#3947)) ([efd7660](AztecProtocol@efd7660)) * Standalone calldata test ([AztecProtocol#3842](AztecProtocol#3842)) ([7353a35](AztecProtocol@7353a35)) * Sync with main noir repo ([AztecProtocol#3939](AztecProtocol#3939)) ([69c7e99](AztecProtocol@69c7e99)) * Update noir ([AztecProtocol#3979](AztecProtocol#3979)) ([271de71](AztecProtocol@271de71)) * Verify state hash is correct before publishing to L1 ([AztecProtocol#3915](AztecProtocol#3915)) ([a53c261](AztecProtocol@a53c261)) ### Bug Fixes * **aztec-nr:** Broken nargo url ([AztecProtocol#3925](AztecProtocol#3925)) ([034bc30](AztecProtocol@034bc30)) * Back out the buggy branch condition ([AztecProtocol#3988](AztecProtocol#3988)) ([9f61ed1](AztecProtocol@9f61ed1)) * Bb unnecessary env var ([AztecProtocol#3901](AztecProtocol#3901)) ([f127e5a](AztecProtocol@f127e5a)) * Broken links by paterson1 ([AztecProtocol#3902](AztecProtocol#3902)) ([6783aaa](AztecProtocol@6783aaa)) * **cli:** Unbox command should run as release ([AztecProtocol#3974](AztecProtocol#3974)) ([80c3805](AztecProtocol@80c3805)) * **cli:** Unbox should set up the accounts package ([AztecProtocol#3972](AztecProtocol#3972)) ([065e988](AztecProtocol@065e988)) * Docusaurus start command ([AztecProtocol#3968](AztecProtocol#3968)) ([87c0b07](AztecProtocol@87c0b07)) * Dont spam logs with yarn install ([AztecProtocol#4027](AztecProtocol#4027)) ([949c5ab](AztecProtocol@949c5ab)) * Fix compilation of `token` box ([AztecProtocol#3981](AztecProtocol#3981)) ([0f994d0](AztecProtocol@0f994d0)) * Mirror_noir_subrepo.yml erroring ([AztecProtocol#3954](AztecProtocol#3954)) ([2ac1b9c](AztecProtocol@2ac1b9c)) * Quote the glob string for ignore branches for protocol-circuits-gate-diff ([AztecProtocol#3990](AztecProtocol#3990)) ([a43889d](AztecProtocol@a43889d)) * Reprocess notes in pxe when a new contract is added ([AztecProtocol#3867](AztecProtocol#3867)) ([ccbff99](AztecProtocol@ccbff99)) * Segment tree insertion stats by depth ([AztecProtocol#4029](AztecProtocol#4029)) ([2787bae](AztecProtocol@2787bae)) * Store blockhash alongside blocks ([AztecProtocol#3950](AztecProtocol#3950)) ([12b07fa](AztecProtocol@12b07fa)), closes [AztecProtocol#3870](AztecProtocol#3870) * Swap branch exclusion for release-please on report gates diff workflow ([AztecProtocol#3994](AztecProtocol#3994)) ([70b2ffd](AztecProtocol@70b2ffd)) * Typos in authwit.md by czepluch ([AztecProtocol#3921](AztecProtocol#3921)) ([4b9d0f4](AztecProtocol@4b9d0f4)) * Yellowpaper docusaurus start command ([AztecProtocol#3969](AztecProtocol#3969)) ([4977cbc](AztecProtocol@4977cbc)) ### Miscellaneous * Add a link back to `aztec-packages` in noir sync PR ([AztecProtocol#4018](AztecProtocol#4018)) ([7d89f3b](AztecProtocol@7d89f3b)) * Catch up note processors could be synced more efficiently ([AztecProtocol#3933](AztecProtocol#3933)) ([df54f33](AztecProtocol@df54f33)) * **ci:** Require boxes CI to succeed ([AztecProtocol#3983](AztecProtocol#3983)) ([93cbea1](AztecProtocol@93cbea1)) * Cleanup duplicated methods for structs after traits ([AztecProtocol#3912](AztecProtocol#3912)) ([60b59da](AztecProtocol@60b59da)) * Cleanup sandbox dependent tests ([AztecProtocol#3861](AztecProtocol#3861)) ([158c5be](AztecProtocol@158c5be)) * Codegen acir opcodes after renaming arithmetic to assertzero ([AztecProtocol#3896](AztecProtocol#3896)) ([c710ce1](AztecProtocol@c710ce1)) * Define key type in maps ([AztecProtocol#3841](AztecProtocol#3841)) ([cf15adb](AztecProtocol@cf15adb)) * Delete the compiler from `noir-compiler` ([AztecProtocol#3959](AztecProtocol#3959)) ([9aa0986](AztecProtocol@9aa0986)) * Deploy canary release of bb.js to npm via CCI ([AztecProtocol#3917](AztecProtocol#3917)) ([bdeb10c](AztecProtocol@bdeb10c)) * Do not fail jq dependencies check for package with no deps ([AztecProtocol#3894](AztecProtocol#3894)) ([22c65bf](AztecProtocol@22c65bf)) * Do not pass redundant txNullifier when computing notes ([AztecProtocol#3943](AztecProtocol#3943)) ([9355cda](AztecProtocol@9355cda)) * Do not run CCI on release-please branches ([AztecProtocol#3984](AztecProtocol#3984)) ([c38dbd2](AztecProtocol@c38dbd2)) * **docs:** Fix ts code in token bridge tutorial ([AztecProtocol#3888](AztecProtocol#3888)) ([f53f8ed](AztecProtocol@f53f8ed)) * **docs:** Move map keys to new release in migration guide ([AztecProtocol#3977](AztecProtocol#3977)) ([6356d94](AztecProtocol@6356d94)) * **docs:** Update missing @aztec/accounts missing import in testing.md ([AztecProtocol#3903](AztecProtocol#3903)) ([755668a](AztecProtocol@755668a)) * Document `witness_buf_to_witness_data` ([AztecProtocol#3940](AztecProtocol#3940)) ([fbaa726](AztecProtocol@fbaa726)) * End to end test node & pxe persistence ([AztecProtocol#3911](AztecProtocol#3911)) ([6164ccd](AztecProtocol@6164ccd)) * Enforce immutable yarn installs in CI ([AztecProtocol#3964](AztecProtocol#3964)) ([f3104ac](AztecProtocol@f3104ac)) * Fix rust tests ([AztecProtocol#3963](AztecProtocol#3963)) ([a907c3b](AztecProtocol@a907c3b)) * Fix sidebar index links ([AztecProtocol#3942](AztecProtocol#3942)) ([984f1f8](AztecProtocol@984f1f8)) * Git subrepo commit (merge) noir ([AztecProtocol#3955](AztecProtocol#3955)) ([2c2bc69](AztecProtocol@2c2bc69)) * Introduce EventSelector class ([AztecProtocol#3960](AztecProtocol#3960)) ([7315f2c](AztecProtocol@7315f2c)) * Investigate P2P test ([AztecProtocol#3929](AztecProtocol#3929)) ([0fca2c4](AztecProtocol@0fca2c4)) * Move types to circuit-types ([AztecProtocol#3967](AztecProtocol#3967)) ([f81b7c0](AztecProtocol@f81b7c0)) * Persistence uses TokenContract ([AztecProtocol#3930](AztecProtocol#3930)) ([1a052c4](AztecProtocol@1a052c4)) * Pull in noir from upstream ([AztecProtocol#3904](AztecProtocol#3904)) ([ab07e7e](AztecProtocol@ab07e7e)) * Recreated types package without circuits.js dependency ([AztecProtocol#3970](AztecProtocol#3970)) ([fc1d539](AztecProtocol@fc1d539)) * Refactor serialisation functions and sibling paths ([AztecProtocol#3980](AztecProtocol#3980)) ([1a936fc](AztecProtocol@1a936fc)) * Remove 'extern template's, expand macros ([AztecProtocol#3953](AztecProtocol#3953)) ([5fe9908](AztecProtocol@5fe9908)) * Remove `Directive::Quotient` ([AztecProtocol#4019](AztecProtocol#4019)) ([824d76f](AztecProtocol@824d76f)) * Remove sandbox and cli npm pkgs ([AztecProtocol#3567](AztecProtocol#3567)) ([a8cf1bf](AztecProtocol@a8cf1bf)) * Reorganize benchmarks ([AztecProtocol#3909](AztecProtocol#3909)) ([730766b](AztecProtocol@730766b)) * Replace `AztecU128` with `U128` ([AztecProtocol#3951](AztecProtocol#3951)) ([e3b288d](AztecProtocol@e3b288d)) * Replace relative paths to noir-protocol-circuits ([2c25f04](AztecProtocol@2c25f04)) * Replace relative paths to noir-protocol-circuits ([0c8b770](AztecProtocol@0c8b770)) * Replace relative paths to noir-protocol-circuits ([d3819ba](AztecProtocol@d3819ba)) * Standardise toml parsers ([AztecProtocol#3910](AztecProtocol#3910)) ([963035f](AztecProtocol@963035f)) * Sync noir ([AztecProtocol#4025](AztecProtocol#4025)) ([4e90d7b](AztecProtocol@4e90d7b)) * Sync Noir repo ([AztecProtocol#4020](AztecProtocol#4020)) ([876603e](AztecProtocol@876603e)) * **yellowpaper:** Cleanup avm sidebar, fix filename case ([AztecProtocol#3952](AztecProtocol#3952)) ([5211060](AztecProtocol@5211060)) * Yp docs sidebar (with some auto-formatting) ([AztecProtocol#3893](AztecProtocol#3893)) ([f7b007a](AztecProtocol@f7b007a)) ### Documentation * Noir git subrepo usage ([AztecProtocol#3962](AztecProtocol#3962)) ([2e4c9de](AztecProtocol@2e4c9de)) * Streamlined pr template ([AztecProtocol#3932](AztecProtocol#3932)) ([5ec1559](AztecProtocol@5ec1559)) * **yellowpaper:** Avm call pointers, bytecode lookups, circuit io ([AztecProtocol#3898](AztecProtocol#3898)) ([45e1ed2](AztecProtocol@45e1ed2)) * **yellowpaper:** Avm circuit architecture ([AztecProtocol#3934](AztecProtocol#3934)) ([6aed1d0](AztecProtocol@6aed1d0)) * **yellowpaper:** First draft of avm circuit memory ([AztecProtocol#3865](AztecProtocol#3865)) ([f689297](AztecProtocol@f689297)) * **yellowpaper:** Logs ([AztecProtocol#4016](AztecProtocol#4016)) ([d734c79](AztecProtocol@d734c79)) * **yellowpaper:** Update AVM spec for with "daGasLeft", some cleanup ([AztecProtocol#3956](AztecProtocol#3956)) ([a9537fb](AztecProtocol@a9537fb)) </details> <details><summary>barretenberg.js: 0.18.0</summary> ## [0.18.0](AztecProtocol/aztec-packages@barretenberg.js-v0.17.0...barretenberg.js-v0.18.0) (2024-01-16) ### Features * Bootstrap cache v2 ([AztecProtocol#3876](AztecProtocol#3876)) ([331598d](AztecProtocol@331598d)) ### Bug Fixes * Dont spam logs with yarn install ([AztecProtocol#4027](AztecProtocol#4027)) ([949c5ab](AztecProtocol@949c5ab)) </details> <details><summary>barretenberg: 0.18.0</summary> ## [0.18.0](AztecProtocol/aztec-packages@barretenberg-v0.17.0...barretenberg-v0.18.0) (2024-01-16) ### ⚠ BREAKING CHANGES * Remove `Directive::Quotient` ([AztecProtocol#4019](AztecProtocol#4019)) * implement keccakf1600 in brillig ([AztecProtocol#3914](AztecProtocol#3914)) * add blake3 opcode to brillig ([AztecProtocol#3913](AztecProtocol#3913)) * Remove opcode supported from the backend ([AztecProtocol#3889](AztecProtocol#3889)) ### Features * Acir cleanup ([AztecProtocol#3845](AztecProtocol#3845)) ([390b84c](AztecProtocol@390b84c)) * Add ACIR opcodes for ECADD and ECDOUBLE ([AztecProtocol#3878](AztecProtocol#3878)) ([537630f](AztecProtocol@537630f)) * Add blake3 opcode to brillig ([AztecProtocol#3913](AztecProtocol#3913)) ([34fad0a](AztecProtocol@34fad0a)) * Bench bb in pr's, docker shell utils ([AztecProtocol#3561](AztecProtocol#3561)) ([5408919](AztecProtocol@5408919)) * Benchmark protogalaxy prover ([AztecProtocol#3958](AztecProtocol#3958)) ([5843722](AztecProtocol@5843722)) * Benchmarks for basic functionality and IPA improvements ([AztecProtocol#4004](AztecProtocol#4004)) ([fd1f619](AztecProtocol@fd1f619)) * Bootstrap cache v2 ([AztecProtocol#3876](AztecProtocol#3876)) ([331598d](AztecProtocol@331598d)) * Implement keccakf1600 in brillig ([AztecProtocol#3914](AztecProtocol#3914)) ([a182381](AztecProtocol@a182381)) * Parallel IPA ([AztecProtocol#3882](AztecProtocol#3882)) ([7002a33](AztecProtocol@7002a33)) * Pil lookups w/ xor table example ([AztecProtocol#3880](AztecProtocol#3880)) ([544d24e](AztecProtocol@544d24e)) * Poseidon2 stdlib impl ([AztecProtocol#3551](AztecProtocol#3551)) ([50b4a72](AztecProtocol@50b4a72)) * Protogalaxy Decider and complete folding tests ([AztecProtocol#3657](AztecProtocol#3657)) ([cfdaf9c](AztecProtocol@cfdaf9c)) * Relations vs widgets benchmarking ([AztecProtocol#3931](AztecProtocol#3931)) ([3af64ef](AztecProtocol@3af64ef)) * Remove opcode supported from the backend ([AztecProtocol#3889](AztecProtocol#3889)) ([1fd135c](AztecProtocol@1fd135c)) * Reorganize acir composer ([AztecProtocol#3957](AztecProtocol#3957)) ([e6232e8](AztecProtocol@e6232e8)) * Standalone calldata test ([AztecProtocol#3842](AztecProtocol#3842)) ([7353a35](AztecProtocol@7353a35)) ### Bug Fixes * Bb unnecessary env var ([AztecProtocol#3901](AztecProtocol#3901)) ([f127e5a](AztecProtocol@f127e5a)) ### Miscellaneous * Codegen acir opcodes after renaming arithmetic to assertzero ([AztecProtocol#3896](AztecProtocol#3896)) ([c710ce1](AztecProtocol@c710ce1)) * Document `witness_buf_to_witness_data` ([AztecProtocol#3940](AztecProtocol#3940)) ([fbaa726](AztecProtocol@fbaa726)) * Remove 'extern template's, expand macros ([AztecProtocol#3953](AztecProtocol#3953)) ([5fe9908](AztecProtocol@5fe9908)) * Remove `Directive::Quotient` ([AztecProtocol#4019](AztecProtocol#4019)) ([824d76f](AztecProtocol@824d76f)) * Reorganize benchmarks ([AztecProtocol#3909](AztecProtocol#3909)) ([730766b](AztecProtocol@730766b)) </details> --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).
This PR introduces the Protogalaxy decider, now having a complete proof of concept of the folding protocol for Ultra instances. To enable this, sumcheck has been modified to work with the same power polynomial as in protogalaxy paper and can be initialised with a custom
target_sum. Moreover, we now use different batching challenges for each subrelation in sumcheck, essential to ensure a reasonable degree of the combiner polynomial.Additional: Minor bug fixed in the computation of \vec{\beta*}.
Resolves AztecProtocol/barretenberg#772.
Resolves AztecProtocol/barretenberg#691.
Checklist:
Remove the checklist to signal you've completed it. Enable auto-merge if the PR is ready to merge.