2012/03/27 by Zhiqiang Ren, Ren, Zhiqiang, Hongwei Xi +1
Computer Science · #D.2.4 #D.3.3 #FOS: Computer and information sciences #Formal Methods in Verification #Logic, programming, and type systems #Programming Languages (cs.PL) #Software Engineering (cs.SE) #Software Testing and Debugging Techniques #cs.PL #cs.SE
paper · pdf · doi:10.48550/arxiv.1203.6102
15 pages, 11 figures. Examples available on-line http://www.ats-lang.org/EXAMPLE/PCPV
arxiv created 2012/03/27 · openalex publication_date 2012/03/27 · arxiv updated 2012/03/29 · openalex created_date 2025/10/10 · openalex updated_date 2026/07/28
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 to specification.