Skip to content

Fall back to checking equality of expressions in sim#997

Open
oskgo wants to merge 1 commit into
mainfrom
fix-990-2
Open

Fall back to checking equality of expressions in sim#997
oskgo wants to merge 1 commit into
mainfrom
fix-990-2

Conversation

@oskgo

@oskgo oskgo commented May 7, 2026

Copy link
Copy Markdown
Contributor

Fixes #990.

Maybe this should be fixed by making the equality check in pretty printing stronger instead. I'm not sure what's right here.

Blocked by #996.

@oskgo

oskgo commented Jun 19, 2026

Copy link
Copy Markdown
Contributor Author

The breakage in sha3 is expected breakage. A goal that was not solved by sim before is now solved. We get an anomaly due to #1054.

The fix is to prune the branch of the proof after the sim at the offending location.

@oskgo oskgo requested a review from strub June 22, 2026 11:26
Co-authored-by: Copilot <copilot@github.com>
@strub strub self-assigned this Jul 3, 2026
@strub strub added this pull request to the merge queue Jul 3, 2026
@github-merge-queue github-merge-queue Bot removed this pull request from the merge queue due to failed status checks Jul 3, 2026
Comment thread src/ecPV.ml
&& EcReduction.EqTest.for_type env b1.e_ty b2.e_ty ->
List.fold_left2 (add_eqs_loc env local) eqs (b1::es1) (b2::es2)
| _, _ when EcReduction.EqTest.for_expr env e1 e2 ->
let fv1 = e_read env e1 in

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I don't understand why you take the union.
Normally you should take the intersection.
The success of EqTest.for_expr should garantie
That the exists a term e such that e1 --> e and e2 --> e
So the free variable of e is in the intersection of e1 and e2.
If you take the union you may have variable bound in the first memory that will be unbound in the other.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

sim less robust

3 participants