Skip to content

Conversation

@Gustavo2622
Copy link
Contributor

Adds circuit based reasoning to EasyCrypt in the form of a module for converting EC constructs into circuits and reasoning over said circuits.
Adds various tactics to use the added functionality in proofs.
Depends on external SMT solver BitWutzla and on external circuit library Lospecs.

strub and others added 30 commits October 10, 2024 11:48
The tactic `alias $pos $name := $pattern` alias the $pattern (subject
to matching) in the instruction targetted by $pos using a fresh
program variable $name.

The tactic does not apply to the expression contained in the
condition of a while loop.
The implementation is outside of the TCB.
Moreover, offsets can bow be absolute (i.e. can be a code-position).
In that case, the meaning is "move the code block before the targetted
instruction".

This work brings some breaking changes:

 - the variant `swap i1 i2 i3` has been removed. It was a way to
   give a direct access to the low-level functionality, but its
   interface is brittle and is not used by any development

 - a bug has been found in the resolution of negative code
   position (they were all shifted by one, making impossible to
   target the last instruction). This now has been fixed.
@Gustavo2622 Gustavo2622 force-pushed the bdep_ecCircuitsRefactor branch from 5b0ce21 to d299f15 Compare December 4, 2025 00:13
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.

5 participants