Skip to content

Conversation

@bobbinth
Copy link
Contributor

This is a tracking PR for v0.5.0 release.

…andle bus boundary constraints uniformly (#415)

* Fixed #414

*Introduce new `ir::PublicInputTable` node*: This node corresponds to a randomly-reduced public input table.

*Optimize Winterfell bus boundary constraint generation*: Using the new `PublicInputTable` node, we can compute the reduced public input tables once, and handle all bus boundary constraints uniformly

* Remove `bus_name` which could lead to duplicate public input evaluations.

* Improve winterfell codegen
…s of randomness (#416)

- Update the ACE codegen to handle bus boundary constraints which refer to public input tables.
- Update `ir::Air` to return the list of public table accesses with a canonical order.
  - Use this accessor to simplify winterfell codegen
- Improve layout of ACE inputs to satisfy requirements of the MASM verifier.
- Fix random challenges to α and β and derive powers of the latter in the circuit.
* chore: fix some bugs and add cleanups

* address feedback

* use QuadWord
@bobbinth
Copy link
Contributor Author

Seems like there is something wrong with CI. All the checks seems to pass locally. Any ideas? cc @huitseeker

* feat(parser): Allow computed indices in AST

* feat(mir): Allow computed indices in MIR

* tests: Add computed indices E2E test

* tests(parser): Add computed indices parser tests

* fix(parser): fix binding type access on non constant index

* tests(mir): add mir tests for computed indices

* chore: update CHANGELOG.md

* tests: Update E2E test to have correct trace

* chore: use chained if lets

* tests: add computed_indices_complex E2E test

Fails for now

* tests: Sort winterfell tests alphabetically

* fix: duplicate_node for argument nodes in calls

* fix: Run Mir inlining until fixed point

* refactor: Handle range as constant, remove their propagation into MIR

* refactor: multiple cleanups addressing review comments

* refactor(mir translate): remove FIXMEs and factorize code

* refactor(mir): Factorize code between constant propagation and unrolling

* fix: small fixes after merge

* refactor: refactor MIR's constant_propagation visit_node

* feat(mir): Value::get_inner_const

* fix(mir): rename handle_accessor_visit arg

rename handle_accessor_visit arg: compute_indices -> expect_constant_indices

* fix(parser): make AccessType::Matrix unreachable for TraceBinding

* fix(mir): improve docs and unify `expect_constant_indices` accross APIs.

* test(mir): adapt computed_indices_complex to use the trace as state

* tests: rework computed indices test based on review, add comments

* chore: lint fix

* refactor: remove unneeded Option

---------

Co-authored-by: Thybault Alabarbe <[email protected]>
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.