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: simplify assertions that squared values are equal to zero #7432

Merged
merged 2 commits into from
Feb 19, 2025

Conversation

TomAFrench
Copy link
Member

Description

Problem*

Something I noticed when reviewing #7301

Summary*

We currently don't simplify

 v1 = mul v0, v0
constrain v1 == u1 0

into

constrain v0 == u1 0

I've then added this as an optimization when decomposing constraints.

This looks like it should be safe to me due to us using a prime field so there's no nonzero solutions to v0 * v0 == 0.

Additional Context

Documentation*

Check one:

  • No documentation needed.
  • Documentation included in this PR.
  • [For Experimental Features] Documentation to be submitted in a separate PR.

PR Checklist*

  • I have tested the changes locally.
  • I have formatted the changes with Prettier and/or cargo fmt on default settings.

@TomAFrench TomAFrench mentioned this pull request Feb 18, 2025
5 tasks
@asterite
Copy link
Collaborator

I was going to suggest adding a test but I wasn't sure it was possible, but it is with from_str_simplifying. Given that I already wrote the test at that point, I pushed it 😅

@TomAFrench TomAFrench added this pull request to the merge queue Feb 19, 2025
Merged via the queue into master with commit 5d19109 Feb 19, 2025
102 checks passed
@TomAFrench TomAFrench deleted the tf/simplify-assertions-on-squared-values branch February 19, 2025 12:29
AztecBot added a commit to AztecProtocol/aztec-packages that referenced this pull request Feb 19, 2025
chore!: make `ResolverError::OracleMarkedAsConstrained` into a full error (noir-lang/noir#7426)
chore: simplify reports (noir-lang/noir#7421)
fix: do not discard negative sign from field literals in comptime interpreter (noir-lang/noir#7439)
chore: bump aztec-packages commit (noir-lang/noir#7441)
fix: require loop/for/while body to be unit (noir-lang/noir#7437)
feat: simplify assertions that squared values are equal to zero (noir-lang/noir#7432)
chore(benchmark): Improve noir msm benchmark (noir-lang/noir#7390)
chore: Add SSA security checks description (noir-lang/noir#7366)
TomAFrench added a commit to AztecProtocol/aztec-packages that referenced this pull request Feb 19, 2025
Automated pull of development from the
[noir](https://github.com/noir-lang/noir) programming language, a
dependency of Aztec.
BEGIN_COMMIT_OVERRIDE
feat(cli): add noir-execute binary
(noir-lang/noir#7384)
chore!: make `ResolverError::OracleMarkedAsConstrained` into a full
error (noir-lang/noir#7426)
chore: simplify reports (noir-lang/noir#7421)
fix: do not discard negative sign from field literals in comptime
interpreter (noir-lang/noir#7439)
chore: bump aztec-packages commit
(noir-lang/noir#7441)
fix: require loop/for/while body to be unit
(noir-lang/noir#7437)
feat: simplify assertions that squared values are equal to zero
(noir-lang/noir#7432)
chore(benchmark): Improve noir msm benchmark
(noir-lang/noir#7390)
chore: Add SSA security checks description
(noir-lang/noir#7366)
END_COMMIT_OVERRIDE

---------

Co-authored-by: Tom French <tom@tomfren.ch>
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