https://github.com/nethermindeth/clear
Interactive formal verification tool for Yul programs
https://github.com/nethermindeth/clear
Last synced: about 1 year ago
JSON representation
Interactive formal verification tool for Yul programs
- Host: GitHub
- URL: https://github.com/nethermindeth/clear
- Owner: NethermindEth
- License: other
- Created: 2024-05-22T14:57:36.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2024-12-05T04:43:38.000Z (over 1 year ago)
- Last Synced: 2025-03-05T09:45:44.774Z (over 1 year ago)
- Language: Lean
- Size: 501 KB
- Stars: 61
- Watchers: 4
- Forks: 6
- Open Issues: 11
-
Metadata Files:
- Readme: README.md
- License: LICENSE.MD
Awesome Lists containing this project
README
# Clear.

Prove anything* about Yul programs.
There are two parts.
- A Lean framework with a Yul model.
- A verification condition generator.
## The Lean framework
Download and install Lean 4. One can follow https://lean-lang.org/lean4/doc/quickstart.html.
To obtain precompiled files for the dependency Mathlib, run the following in the root directory (this is optional, it saves time):
```
lake exe cache get
```
Then simply run the following in the root directory:
```
lake build
```
## The verification condition generator (vc)
Download and install Stack. One can follow https://docs.haskellstack.org/en/stable/install_and_upgrade/.
Then simply run the following in the `vc` directory:
```
stack build
```
## Verifying it all works
In the `vc` directory, run:
```
stack run vc ../out/peano.yul
```
You should get a `Generated` folder corresponding with the structure of the Peano example
in the `out/peano.yul` file.