TL;DR
This paper introduces a lightweight Python library that uses refinement types for runtime verification of scientific software, enhancing correctness guarantees without requiring extensive formal methods expertise.
Contribution
The paper presents a novel Python tool that applies refinement types for runtime verification, enabling correctness checks in scientific code with minimal additional effort.
Findings
Helped locate trivial bugs early in development
Identified four difficult-to-find bugs in scientific software
Verified correctness of user code without explicit contracts
Abstract
Our scientific knowledge is increasingly built on software output. User code which defines data analysis pipelines and computational models is essential for research in the natural and social sciences, but little is known about how to ensure its correctness. The structure of this code and the development process used to build it limit the utility of traditional testing methodology. Formal methods for software verification have seen great success in ensuring code correctness but generally require more specialized training, development time, and funding than is available in the natural and social sciences. Here, we present a Python library which uses lightweight formal methods to provide correctness guarantees without the need for specialized knowledge or substantial time investment. Our package provides runtime verification of function entry and exit condition contracts using refinement…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Code & Models
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
