Skip to content

Conversation

@blishko
Copy link
Collaborator

@blishko blishko commented Oct 2, 2025

Previously, we would lose information about concrete Keccak computations during simplification.
This information is then missing when we create constraints on the abstract Keccak computations in the program.

The suggested solution is to collect concrete Keccak computations and re-add them to the Props after simplification.

We also need to remove the call to simplification in assertProps. The propositions are simplified before (in checkSatWithProps) and also afterwards, in assertPropsHelper. We need to ensure that the concrete Keccak computations survive until they are collected in assertPropsHelper.

Fixes #819.

Checklist

  • tested locally
  • added automated tests
  • updated the docs
  • updated the changelog

Previously, we would lose information about concrete Keccak computations
during simplification.
This information is then missing when we create constraints on the
abstract Keccak computations in the program.

The suggested solution is to collect concrete Keccak computations and
re-add them to the Props after simplification.

We also need to remove the call to simplification in `assertProps`.
The propositions are simplified before (in `checkSatWithProps`) and also
afterwards, in `assertPropsHelper`. We need to ensure that the
concrete Keccak computations survive until they are collected in
`assertPropsHelper`.
@blishko blishko requested a review from msooseth October 2, 2025 18:45
Copy link
Collaborator

@msooseth msooseth left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Wow. Nice, thanks, that is great. I actually looked quite deep here, and it is indeed right. Thank you!

@msooseth msooseth merged commit 44f090b into main Oct 6, 2025
18 of 21 checks passed
@msooseth msooseth deleted the fix-concrete-keccak branch October 6, 2025 10:44
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.

Another invalid CEX

3 participants