Affiliation:
1. Microsoft Research, Redmond, WA USA
2. The University of the Basque Country (UPV/EHU)
Abstract
We present a mechanically verified implementation of the sorting algorithm
Natural Mergesort
that consists of a few methods specified by their contracts of pre/post conditions. Methods are annotated with assertions that allow the automatic verification of the contract satisfaction. This program-proof is made using the state-of-the-art verifier
Dafny
. We verify not only the standard sortedness property, but also that the algorithm performs a stable sort. Throughout the article, we provide and explain the complete text of the program-proof.
Publisher
Association for Computing Machinery (ACM)
Subject
Computational Mathematics,Logic,General Computer Science,Theoretical Computer Science
Reference21 articles.
1. The calculational method
2. Boogie: A Modular Reusable Verifier for Object-Oriented Programs
3. Specification and verification
4. Bernhard Beckert Daniel Bruns Vladimir Klebanov Christoph Scheben Peter H. Schmitt and Mattias Ulbrich. 2013. Secure Information Flow for Java. A Dynamic Logic Approach. Extended Version. Karlsruhe reports in informatics. Fakultät für Informatik. Bernhard Beckert Daniel Bruns Vladimir Klebanov Christoph Scheben Peter H. Schmitt and Mattias Ulbrich. 2013. Secure Information Flow for Java. A Dynamic Logic Approach. Extended Version. Karlsruhe reports in informatics. Fakultät für Informatik.
5. Bernhard Beckert Reiner Hähnle and Peter H. Schmitt. 2007. Verification of Object-oriented Software: The KeY Approach. Springer. Bernhard Beckert Reiner Hähnle and Peter H. Schmitt. 2007. Verification of Object-oriented Software: The KeY Approach. Springer.
Cited by
3 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. An Assertional Proof of Red–Black Trees Using Dafny;Journal of Automated Reasoning;2019-10-03
2. A Tutorial on Using Dafny to Construct Verified Software;Electronic Proceedings in Theoretical Computer Science;2017-01-11
3. Proving JDK’s Dual Pivot Quicksort Correct;Lecture Notes in Computer Science;2017