The article is a release note for Halmos v0.1.0, an open-source formal verification tool developed by a16z crypto. The new release focuses on performance and developer experience. Significant performance improvements have been made, benefiting both simple tests and large test suites. The integration with the foundry has been improved, resulting in fewer recompilations and better support for incremental builds. The handling of binary blobs has been made more efficient, and the Z3 integration has been enhanced. The release also introduces parallel processing and expands coverage to support more EVM instructions and Foundry cheatcodes.
- Performance Improvements: Halmos v0.1.0 has made significant performance improvements, making it easier to get started, iterate, and write more ambitious tests.
- Improved Foundry Integration: The new release removes the middleware that abstracted away the build system and instead invokes forge directly, resulting in fewer recompilations and better support for incremental builds.
- Efficient Handling of Binary Blobs: The EVM interpreter now tries to keep large concrete buffers like contract code as concrete values as much as possible, building Z3 expressions lazily. This makes setUp() time about 3x faster.
- Better Z3 Integration: Several optimizations have been implemented to enhance the efficiency of SMT queries, improving single thread performance by about 2x.
- Parallel Processing: Halmos now processes work streams in parallel, improving performance on large test suites by 2-4x.
- Expanded Coverage: The new release supports more EVM instructions and Foundry cheatcodes, meaning Halmos should work out of the box on more contracts and existing test suites.