Files
zeekay abf99d05fc papers: reorganize into per-paper dirs, add Antje Worring as co-author
Restructured from flat .tex/.pdf files into per-paper subdirectories.
Added Antje Worring as co-author on all papers.
Synced PDFs to pdfs/ for download site.
2026-04-18 21:50:07 -07:00

24 lines
1.4 KiB
TeX

\section{Conclusion}
Symbolic execution with Halmos provides a practical middle ground between testing and
formal verification. It requires minimal effort above standard Foundry testing---write
\texttt{check\_} instead of \texttt{test\_}, use \texttt{assert} instead of
\texttt{assertEq}---but provides dramatically stronger guarantees: proofs over all
inputs, not just tested ones. Our 9 Halmos proofs cover the most critical invariants of
Lux Network's smart contract suite and run in CI on every pull request.
The path from testing to symbolic verification is incremental. Start by converting your
most critical fuzz test to a symbolic test. If Halmos verifies it, you have a proof.
If it finds a counterexample, you have a bug. Either way, you win.
\begin{thebibliography}{99}
\bibitem{halmos} Park, D. et al. ``Halmos: Symbolic Testing for EVM Smart Contracts.'' a16z Crypto, 2023.
\bibitem{king1976} King, J.C. ``Symbolic Execution and Program Testing.'' Communications of the ACM, 1976.
\bibitem{z3} de Moura, L. and Bj{\o}rner, N. ``Z3: An Efficient SMT Solver.'' TACAS, 2008.
\bibitem{mythril} Mueller, B. ``Smashing Ethereum Smart Contracts for Fun and Real Profit.'' HITB, 2018.
\bibitem{manticore} Mossberg, M. et al. ``Manticore: A User-Friendly Symbolic Execution Framework.'' ASE, 2019.
\bibitem{foundry} Paradigm. ``Foundry: A Blazing Fast, Portable and Modular Toolkit for Ethereum Application Development.'' 2022.
\end{thebibliography}