A Programmer-Centric Approach to Program Verification in ATS
Zhiqiang Ren, Hongwei Xi

TL;DR
This paper introduces a programmer-centric verification approach in ATS, emphasizing literate explanations to bridge the gap between formal specifications and implementation, thereby enhancing software correctness.
Contribution
It proposes a novel, example-driven verification style in ATS that encourages programmers to articulate their reasoning, improving the alignment of code with formal specifications.
Findings
Enhanced verification through literate explanations
Improved alignment between code and specifications
Practical demonstration with examples
Abstract
Formal specification is widely employed in the construction of high-quality software. However, there is often a huge gap between formal specification and actual implementation. While there is already a vast body of work on software testing and verification, the task to ensure that an implementation indeed meets its specification is still undeniably of great difficulty. ATS is a programming language equipped with a highly expressive type system that allows the programmer to specify and implement and then verify within the language itself that an implementation meets its specification. In this paper, we present largely through examples a programmer-centric style of program verification that puts emphasis on requesting the programmer to explain in a literate fashion why his or her code works. This is a solid step in the pursuit of software construction that is verifiably correct according…
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.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsLogic, programming, and type systems · Software Testing and Debugging Techniques · Formal Methods in Verification
