Skip to content

feat: simplify assertions that squared values are equal to zero#7432

Merged
TomAFrench merged 2 commits intomasterfrom
tf/simplify-assertions-on-squared-values
Feb 19, 2025
Merged

feat: simplify assertions that squared values are equal to zero#7432
TomAFrench merged 2 commits intomasterfrom
tf/simplify-assertions-on-squared-values

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 pushed 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