Property-based testing (PBT) is often used by Rust developers to test functional correctness properties of their code. Since PBT uses randomized testing, its guarantees are limited: it can detect bugs but provides no formal guarantees of correctness. The Kani Rust Verifier uses the CProver verification framework to verify Rust code, given a specification in a Kani verification harness. However, developers must manually write Kani harnesses while avoiding model-checking-specific pitfalls like large memory usage or
timeouts.
We introduce propproof
, a library that automatically converts proptest
PBT harnesses into Kani harnesses which can be formally validated using Kani. We discuss the data-structure models we developed in order to optimize performance of these Kani verification harnesses. Using this library, we identified and fixed 2 issues in PROST
, an AWS-developed protocol-buffer library with nearly 40 million downloads. propproof
is being used in PROST
’s CI. Our evaluation on 42 PBT harnesses from top-ranked open-source Rust libraries demonstrates propproof
enabling the use of Kani to verify complex, user-defined properties on existing code with minimal user intervention.
Wed 6 DecDisplayed time zone: Pacific Time (US & Canada) change
16:00 - 18:00 | Formal VerificationResearch Papers / Industry Papers / Ideas, Visions and Reflections / Demonstrations at Golden Gate C2 Chair(s): Christoph Treude University of Melbourne | ||
16:00 15mTalk | State Merging with Quantifiers in Symbolic Execution Research Papers David Trabish Tel Aviv University, Noam Rinetzky Tel Aviv University, Sharon Shoham Tel Aviv University, Vaibhav Sharma University of Minnesota DOI Pre-print Media Attached | ||
16:15 15mTalk | Towards Strengthening Formal Specifications with Mutation Model Checking Ideas, Visions and Reflections Maxime Cordy SnT, University of Luxembourg, Sami Lazreg SnT, University of Luxembourg, Axel Legay Université Catholique de Louvain, Belgium, Pierre Yves Schobbens University of Namur Media Attached | ||
16:30 15mTalk | PropProof: Free Model-Checking Harnesses from PBT Industry Papers Yoshiki Takashima Carnegie Mellon University DOI Media Attached | ||
16:45 15mTalk | Engineering a Formally Verified Automated Bug Finder Research Papers Arthur Correnson CISPA Helmholtz Center for Information Security, Dominic Steinhöfel CISPA Helmholtz Center for Information Security Media Attached | ||
17:00 15mTalk | LightF3: A Lightweight Fully-Process Formal Framework for Automated Verifying Railway Interlocking Systems Industry Papers Yibo Dong East China Normal University; Shanghai Trusted Industrial Control Platform, Xiaoyu Zhang East China Normal University, Yicong Xu East China Normal University, Chang Cai East China Normal University, Yu Chen East China Normal University, Weikai Miao East China Normal University, Jianwen Li East China Normal University, China, Geguang Pu East China Normal University DOI Media Attached | ||
17:15 15mTalk | Speeding up SMT Solving via Compiler Optimization Research Papers Media Attached | ||
17:30 15mTalk | [Remote] Detecting Atomicity Violations in Interrupt-Driven Programs via Interruption Points Selecting and Delayed ISR-Triggering Research Papers Bin Yu School of Computer Science and Technology, Xidian University, Cong Tian Xidian University, Hengrui Xing School of Computer Science and Technology, Xidian University, Zuchao Yang School of Computer Science and Technology, Xidian University, Jie Su School of Computer Science and Technology, Xidian University, Xu Lu School of Computer Science and Technology, Xidian University, Jiyu Yang School of Computer Science and Technology, Xidian University, Liang Zhao School of Computer Science and Technology, Xidian University, Xiaofeng Li Beijing Institute of Control Engineering, Zhenhua Duan Xidian University Media Attached | ||
17:45 7mTalk | [Remote] P4b: A Translator from P4 Programs to Boogie Demonstrations Media Attached |