-
Notifications
You must be signed in to change notification settings - Fork 103
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat: handle consecutive kernels in IVC (#8924)
Prior to this PR, the IVC scheme made the assumption that every other circuit was a kernel, i.e. app, kernel, app, kernel, ... etc. In practice, however, it will be common to have two or more consecutive kernels without a corresponding app, e.g. an inner kernel followed immediately by a reset kernel. This PR updates the IVC so that whether or not a circuit is treated as a kernel is determined by the the already existing tag `circuit.databus_propagation_data.is_kernel`. When constructing circuits from noir programs, the above flag is set to true if and only if the circuit has calldata (which apps never do). This allows us to reinstate the full set of circuits in the ivc integration test suite which contains 3 consecutive kernels (inner, reset, tail). In accordance with this change I had to add explicit setting of `is_kernel` to various test suites and flows which previously utilized the default assumption that every other circuit was a kernel. (Many of these cases will soon go away once we are ready to do away with the `auto_verify_mode` version of IVC which exists for testing convenience and does not have any practical use case). Closes #1111
- Loading branch information
1 parent
c49cd4b
commit f8ece02
Showing
9 changed files
with
111 additions
and
28 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters