PV3 Helmholtzverifies properties from program annotations

Verifier for smart contracts written in the Michelson language for the Tezos blockchain.

Application domain/field

Type of tool

Static verifier, auto-active verifier?

Expected input

Michelson program annotated with a user-defined specification. The user-defined specification should be expressed in a refinement type. The user may also need to provide additional annotations such as loop invariants.

Format:

Michelson (language)

Expected output

VERIFIED if the program satisfies the specification. Otherwise, UNVERIFIED.

Internals

Uses Z3 to discharge generated verification conditions.
Smart contract

Links

Related papers

Helmholtz: A Verifier for Tezos Smart Contracts Based on Refinement Types (TACAS '21)

Last publication date

23 March 2021

ProVerB specific



ProVerB is a part of SLEBoK. Last updated: February 2023.