Skip to content

Conversation

@fdupress
Copy link
Member

@fdupress fdupress commented Feb 21, 2025

This makes stdlib and examples go through without alt-ergo, and removes
that prover from the expected set of provers for EC CI.

This makes EasyCrypt more cleanly usable in commercial and non-free
contexts. Our docker images still contain alt-ergo versions, which are
available for proofs in external CI and individual proofs, upon a user's
(hopefully informed) choice.

Anyone wanting to transition their proofs away from alt-ergo should
expect proofs that use SMT to solve goals that require either
instantiation of existentials or case analysis on inductively-typed
values to fail after removing alt-ergo.

@fdupress
Copy link
Member Author

There are three theories I expect to still fail:

  • datatypes/Xreal
  • theories/crypto/assumption/PKSMK
  • theories/crypto/assumptions/DHIES

They all have two things in common: @bgregoir and a reading level beyond my Friday afternoon capabilities.

Benjamin, if you could attempt to make those three theories work without alt-ergo, that would be very kind.

@fdupress fdupress force-pushed the unbless-alt-ergo branch 3 times, most recently from deb87b9 to 7ddbf6d Compare May 1, 2025 15:00
@fdupress
Copy link
Member Author

fdupress commented May 1, 2025

All stdlib should now be going through. I expect failures in the examples; which I'll tackle next.

Failures in the external CI should not be expected: they bring their own easycrypt.project, as intended. That being said, fixing the stdlib has involved adding a number of lemmas, so some SMT calls in external CI might lose stability.

@vbgl
Copy link
Contributor

vbgl commented Aug 20, 2025

I’ve pushed two commits that are relevant to this PR in an other branch: vbgl@d89de85

They fix the proofs of the examples without alt-ergo.

@fdupress
Copy link
Member Author

Thanks, I'm not at work today, but if @strub or @Cameron-Low are able to cherry-pick those over to check CI, that would be grand.

@vbgl, tell Benjamin he owes you a bunch for those proofs.

@strub strub force-pushed the unbless-alt-ergo branch from ca29c89 to e82cf2a Compare August 23, 2025 12:30
@strub strub marked this pull request as ready for review August 23, 2025 12:31
@strub
Copy link
Member

strub commented Aug 23, 2025

@fdupress I let you do the final cleaning & squashing. But everything seems OK now.

Copy link
Member

@strub strub left a comment

Choose a reason for hiding this comment

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

Fix the added FIXME: cleanup

@fdupress
Copy link
Member Author

Cleaned up, squashed, and expanded a bit on the commit message. — Please check, @strub.

@strub strub assigned fdupress and unassigned bgregoir Aug 27, 2025
@fdupress fdupress changed the title start removing our blessing from alt-ergo remove alt-ergo from EasyCrypt TCB Aug 27, 2025
This makes stdlib and examples go through without alt-ergo, and removes
that prover from the expected set of provers for EC CI.

This makes EasyCrypt more cleanly usable in commercial and non-free
contexts. Our docker images still contain alt-ergo versions, which are
available for proofs in external CI and individual proofs, upon a user's
(hopefully informed) choice.

Anyone wanting to transition their proofs away from alt-ergo should
expect proofs that use SMT to solve goals that require either
instantiation of existentials or case analysis on inductively-typed
values to fail after removing alt-ergo.
@fdupress fdupress merged commit 41d8e7b into main Aug 28, 2025
15 checks passed
@fdupress fdupress deleted the unbless-alt-ergo branch August 28, 2025 07:47
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.

5 participants