2021
DOI: 10.1007/978-3-030-81688-9_37
|View full text |Cite
|
Sign up to set email alerts
|

Functional Correctness of C Implementations of Dijkstra’s, Kruskal’s, and Prim’s Algorithms

Abstract: We develop machine-checked verifications of the full functional correctness of C implementations of the eponymous graph algorithms of Dijkstra, Kruskal, and Prim. We extend Wang et al.’s CertiGraph platform to reason about labels on edges, undirected graphs, and common spatial representations of edge-labeled graphs such as adjacency matrices and edge lists. We certify binary heaps, including Floyd’s bottom-up heap construction, heapsort, and increase/decrease priority.Our verifications uncover subtle overflows… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1

Citation Types

0
1
0

Year Published

2022
2022
2024
2024

Publication Types

Select...
3
1
1

Relationship

0
5

Authors

Journals

citations
Cited by 6 publications
(3 citation statements)
references
References 54 publications
0
1
0
Order By: Relevance
“…If we are able to complete a proof of full functional correctness using the approaches in [Möller and Höfner, 2019] and also provide enough additional functionality to form a library, we plan to make our code available as a crate through the new Alire (Ada LIbrary REpository) distribution system. Completing this proof will show that a full functional correctness proof of Prim's algorithm is possible with more-automated tools such as Why3, contrary to Mohan et al's prediction that such tools would not be able to prove full functional correctness as easily as their work with VST [Mohan et al, 2021].…”
Section: Discussionmentioning
confidence: 94%
See 1 more Smart Citation
“…If we are able to complete a proof of full functional correctness using the approaches in [Möller and Höfner, 2019] and also provide enough additional functionality to form a library, we plan to make our code available as a crate through the new Alire (Ada LIbrary REpository) distribution system. Completing this proof will show that a full functional correctness proof of Prim's algorithm is possible with more-automated tools such as Why3, contrary to Mohan et al's prediction that such tools would not be able to prove full functional correctness as easily as their work with VST [Mohan et al, 2021].…”
Section: Discussionmentioning
confidence: 94%
“…Another effort has succeeded in a proof of full functional correctness of an executable implementation of Prim's algorithm written in verifiable C using Coq: CompCert and the Verified Software Toolchain (VST) separation logic deductive verifier [Mohan et al, 2021]. Mohan demonstrates that Prim's algorithm works on disconnected graphs (thus finding a minimal spanning forest (MSF) rather than a MST) and predicts that more-automated tools such as Why3 would not be able to prove full functional correctness as easily as their work with VST.…”
Section: Related Workmentioning
confidence: 99%
“…But we still want to do this within the context of separation logic, so we can use logics such as VST and Iris to handle other aspects of the program that naturally want separation. CertiGraph has been successfully used atop VST-Floyd to prove the correctness of a generational copying garbage collector [47] and Dijkstra's, Kruskal's, and Prim's algorithms [40].…”
Section: Auxiliary Tools For Proving Refinementmentioning
confidence: 99%