We show how to verify four challenging concurrent fine-grained graph-manipulating algorithms, including graph copy, a speculatively parallel Dijkstra, graph marking and spanning tree. We develop a reasoning method for such algorithms that dynamically tracks the contributions and responsibilities of each thread operating on a graph, even in cases of arbitrary recursive thread creation. We demonstrate how to use a logic without abstraction ( Open image in new window ) to carry out abstract reasoning in the style of iCAP, by building the abstraction into the proof structure rather than incorporating it into the semantic model of the logic
This thesis is concerned with verifying the correctness of programs written in GP 2 (for Graph Progr...
16 pagesInternational audienceThis article proposes a method for proving the correctness of graph al...
This thesis is not available on this repository until the author agrees to make it public. If you ar...
Concurrent programming has become popular in the recent years to facilitate exploitation of hardware...
Proving correctness of distributed or concurrent algorithms is a mind-challenging and complex proces...
Abstract. A key difficulty in verifying shared-memory concurrent pro-grams is reasoning compositiona...
Despite recent advances in reasoning about concurrent data structure libraries, the largest implemen...
Reasoning systems based on Concurrent Separation Logic make verifying complex concurrent algorithms ...
How can we rigorously prove that an algorithm does what we think it does? Logically verifying progr...
Efficient concurrent programs and data structures rarely employ coarse-grained synchronization mecha...
A trace of the execution of a concurrent object-oriented program can be displayed in two-dimensions ...
In this paper, we consider the problem of preserving acyclicity in a directed graph (for shared mem...
Recent program logics based on separation logic emphasise a modular approach to proving functional c...
Concurrency is often an optimisation, rather than intrinsic to the functional behaviour of a program...
When using a proof assistant to reason in an embedded logic – like separation logic – one cannot ben...
This thesis is concerned with verifying the correctness of programs written in GP 2 (for Graph Progr...
16 pagesInternational audienceThis article proposes a method for proving the correctness of graph al...
This thesis is not available on this repository until the author agrees to make it public. If you ar...
Concurrent programming has become popular in the recent years to facilitate exploitation of hardware...
Proving correctness of distributed or concurrent algorithms is a mind-challenging and complex proces...
Abstract. A key difficulty in verifying shared-memory concurrent pro-grams is reasoning compositiona...
Despite recent advances in reasoning about concurrent data structure libraries, the largest implemen...
Reasoning systems based on Concurrent Separation Logic make verifying complex concurrent algorithms ...
How can we rigorously prove that an algorithm does what we think it does? Logically verifying progr...
Efficient concurrent programs and data structures rarely employ coarse-grained synchronization mecha...
A trace of the execution of a concurrent object-oriented program can be displayed in two-dimensions ...
In this paper, we consider the problem of preserving acyclicity in a directed graph (for shared mem...
Recent program logics based on separation logic emphasise a modular approach to proving functional c...
Concurrency is often an optimisation, rather than intrinsic to the functional behaviour of a program...
When using a proof assistant to reason in an embedded logic – like separation logic – one cannot ben...
This thesis is concerned with verifying the correctness of programs written in GP 2 (for Graph Progr...
16 pagesInternational audienceThis article proposes a method for proving the correctness of graph al...
This thesis is not available on this repository until the author agrees to make it public. If you ar...