modular reasoning
Recently Published Documents


TOTAL DOCUMENTS

62
(FIVE YEARS 4)

H-INDEX

10
(FIVE YEARS 1)

Author(s):  
Siddharth Krishna ◽  
Alexander J. Summers ◽  
Thomas Wies

AbstractSeparation logics are widely used for verifying programs that manipulate complex heap-based data structures. These logics build on so-called separation algebras, which allow expressing properties of heap regions such that modifications to a region do not invalidate properties stated about the remainder of the heap. This concept is key to enabling modular reasoning and also extends to concurrency. While heaps are naturally related to mathematical graphs, many ubiquitous graph properties are non-local in character, such as reachability between nodes, path lengths, acyclicity and other structural invariants, as well as data invariants which combine with these notions. Reasoning modularly about such graph properties remains notoriously difficult, since a local modification can have side-effects on a global property that cannot be easily confined to a small region.In this paper, we address the question: What separation algebra can be used to avoid proof arguments reverting back to tedious global reasoning in such cases? To this end, we consider a general class of global graph properties expressed as fixpoints of algebraic equations over graphs. We present mathematical foundations for reasoning about this class of properties, imposing minimal requirements on the underlying theory that allow us to define a suitable separation algebra. Building on this theory, we develop a general proof technique for modular reasoning about global graph properties expressed over program heaps, in a way which can be directly integrated with existing separation logics. To demonstrate our approach, we present local proofs for two challenging examples: a priority inheritance protocol and the non-blocking concurrent Harris list.


Author(s):  
Morten Krogh-Jespersen ◽  
Amin Timany ◽  
Marit Edna Ohlenbusch ◽  
Simon Oddershede Gregersen ◽  
Lars Birkedal

AbstractBuilding network-connected programs and distributed systems is a powerful way to provide scalability and availability in a digital, always-connected era. However, with great power comes great complexity. Reasoning about distributed systems is well-known to be difficult. In this paper we present , a novel framework based on separation logic supporting modular, node-local reasoning about concurrent and distributed systems. The logic is higher-order, concurrent, with higher-order store and network sockets, and is fully mechanized in the Coq proof assistant. We use our framework to verify an implementation of a load balancer that uses multi-threading to distribute load amongst multiple servers and an implementation of the two-phase-commit protocol with a replicated logging service as a client. The two examples certify that is well-suited for both horizontal and vertical modular reasoning.


Author(s):  
Crystal Chang Din ◽  
Einar Broch Johnsen ◽  
Olaf Owe ◽  
Ingrid Chieh Yu

Author(s):  
Samuel Balco ◽  
Sabine Frittella ◽  
Giuseppe Greco ◽  
Alexander Kurz ◽  
Alessandra Palmigiano

Author(s):  
Mehdi Bagherzadeh ◽  
Robert Dyer ◽  
Rex D. Fernando ◽  
José Sánchez ◽  
Hridesh Rajan
Keyword(s):  

Sign in / Sign up

Export Citation Format

Share Document