2019
DOI: 10.1145/3360597
|View full text |Cite
|
Sign up to set email alerts
|

Certifying graph-manipulating C programs via localizations within data structures

Abstract: We develop powerful and general techniques to mechanically verify realistic programs that manipulate heaprepresented graphs. These graphs can exhibit well-known organization principles, such as being a directed acyclic graph or a disjoint-forest; alternatively, these graphs can be totally unstructured. The common thread for such structures is that they exhibit deep intrinsic sharing and can be expressed using the language of graph theory. We construct a modular and general setup for reasoning about abstract ma… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
14
0

Year Published

2020
2020
2022
2022

Publication Types

Select...
2
2
1

Relationship

1
4

Authors

Journals

citations
Cited by 8 publications
(14 citation statements)
references
References 46 publications
(54 reference statements)
0
14
0
Order By: Relevance
“…In recent work, Wang et al present a Coq-mechanised proof of graph algorithms in C, based on a substantial library of graph-related lemmas, both for mathematical and heap-based graphs [43]. They prove rich functional properties, integrated with the VST tool.…”
Section: Related Workmentioning
confidence: 99%
“…In recent work, Wang et al present a Coq-mechanised proof of graph algorithms in C, based on a substantial library of graph-related lemmas, both for mathematical and heap-based graphs [43]. They prove rich functional properties, integrated with the VST tool.…”
Section: Related Workmentioning
confidence: 99%
“…The CertiGraph library presented in [73] supports only directed graphs, and, as we have seen, bakes direction-reliant idioms such as src and dst deep into its development. Our challenge is to add support for undirected graphs atop of this.…”
Section: Undirectedness In a Directed Worldmentioning
confidence: 99%
“…Here V/E are the carrier types of vertices/edges, vvalid/evalid place restrictions specifying whether a vertex/edge is valid 1 , and src/dst : E → V map edges to their source/destination. Labels are allowed on vertices and edges, and a soundness condition allows custom application-specific restrictions [73]. Mathematical graphs connect to graphs in computer memory via spatial predicates in separation logic.…”
Section: Extensions To Certigraphmentioning
confidence: 99%
See 2 more Smart Citations