Skip to main content

Showing 1–15 of 15 results for author: Summers, A J

.
  1. arXiv:2405.08372  [pdf, ps, other

    cs.PL cs.LO

    Reasoning about Interior Mutability in Rust using Library-Defined Capabilities

    Authors: Federico Poli, Xavier Denis, Peter Müller, Alexander J. Summers

    Abstract: Existing automated verification techniques for safe Rust code rely on the strong type-system properties to reason about programs, especially to deduce which memory locations do not change (i.e., are framed) across function calls. However, these type guarantees do not hold in the presence of interior mutability (e.g., when interacting with any concurrent data structure). As a consequence, existing… ▽ More

    Submitted 14 May, 2024; originally announced May 2024.

  2. arXiv:2404.18007  [pdf, ps, other

    cs.LO

    A Formal Model to Prove Instantiation Termination for E-matching-Based Axiomatisations (Extended Version)

    Authors: Rui Ge, Ronald Garcia, Alexander J. Summers

    Abstract: SMT-based program analysis and verification often involve reasoning about program features that have been specified using quantifiers; incorporating quantifiers into SMT-based reasoning is, however, known to be challenging. If quantifier instantiation is not carefully controlled, then runtime and outcomes can be brittle and hard to predict. In particular, uncontrolled quantifier instantiation can… ▽ More

    Submitted 27 April, 2024; originally announced April 2024.

    Comments: extended version of IJCAR 2024 publication

  3. arXiv:2404.03614  [pdf, ps, other

    cs.PL

    Towards Trustworthy Automated Program Verifiers: Formally Validating Translations into an Intermediate Verification Language (extended version)

    Authors: Gaurav Parthasarathy, Thibault Dardinier, Benjamin Bonneau, Peter Müller, Alexander J. Summers

    Abstract: Automated program verifiers are typically implemented using an intermediate verification language (IVL), such as Boogie or Why3. A verifier front-end translates the input program and specification into an IVL program, while the back-end generates proof obligations for the IVL program and employs an SMT solver to discharge them. Soundness of such verifiers therefore requires that the front-end tran… ▽ More

    Submitted 9 May, 2024; v1 submitted 4 April, 2024; originally announced April 2024.

    Comments: Extended version of PLDI 2024 publication

  4. arXiv:2304.12530  [pdf, ps, other

    cs.PL

    Resource Specifications for Resource-Manipulating Programs

    Authors: Zachary Grannan, Alexander J. Summers

    Abstract: Specifications for modular program verifiers are expressed as constraints on program states (e.g. preconditions) and relations on program states (e.g. postconditions). For programs whose domain is managing resources of any kind (e.g. cryptocurrencies), such state-based specifications must make explicit properties that a human would implicitly understand for free. For example, it's clear that depos… ▽ More

    Submitted 18 April, 2024; v1 submitted 24 April, 2023; originally announced April 2023.

  5. arXiv:2210.09857  [pdf, ps, other

    cs.LO

    Compositional Reasoning for Side-effectful Iterators and Iterator Adapters

    Authors: Aurel Bílý, Jonas Hansen, Peter Müller, Alexander J. Summers

    Abstract: Iteration is a programming operation that traditionally refers to visiting the elements of a data structure in sequence. However, modern programming systems such as Rust, Java, and C# generalise iteration far beyond the traditional use case. They allow iterators to be parameterised with (potentially side-effectful) closures and support the composition of iterators to form iterator chains, where ea… ▽ More

    Submitted 18 October, 2022; originally announced October 2022.

    MSC Class: 68Q60 ACM Class: F.3.1

  6. arXiv:2205.11325  [pdf, other

    cs.LO

    Sound Automation of Magic Wands (extended version)

    Authors: Thibault Dardinier, Gaurav Parthasarathy, Noé Weeks, Alexanders J. Summers, Peter Müller

    Abstract: The magic wand $\mathbin{-\!\!*}$ (also called separating implication) is a separation logic connective commonly used to specify properties of partial data structures, for instance during iterative traversals. A footprint of a magic wand formula $A \mathbin{-\!\!*} B$ is a state that, combined with any state in which $A$ holds, yields a state in which $B$ holds. The key challenge of proving a magi… ▽ More

    Submitted 2 August, 2022; v1 submitted 23 May, 2022; originally announced May 2022.

    Comments: Extended version of CAV 2022 publication

  7. arXiv:2202.05872  [pdf, other

    cs.PL

    REST: Integrating Term Rewriting with Program Verification (Extended Version)

    Authors: Zachary Grannan, Niki Vazou, Eva Darulova, Alexander J. Summers

    Abstract: We introduce REST, a novel term rewriting technique for theorem proving that uses online termination checking and can be integrated with existing program verifiers. REST enables flexible but terminating term rewriting for theorem proving by: (1) exploiting newly-introduced term orderings that are more permissive than standard rewrite simplification orderings; (2) dynamically and iteratively select… ▽ More

    Submitted 16 February, 2022; v1 submitted 11 February, 2022; originally announced February 2022.

  8. arXiv:2105.14381  [pdf, other

    cs.PL

    Formally Validating a Practical Verification Condition Generator (extended version)

    Authors: Gaurav Parthasarathy, Peter Müller, Alexander J. Summers

    Abstract: A program verifier produces reliable results only if both the logic used to justify the program's correctness is sound, and the implementation of the program verifier is itself correct. Whereas it is common to formally prove soundness of the logic, the implementation of a verifier typically remains unverified. Bugs in verifier implementations may compromise the trustworthiness of successful verifi… ▽ More

    Submitted 29 May, 2021; originally announced May 2021.

    Comments: Extended version of CAV 2021 publication

  9. arXiv:2104.10274  [pdf, other

    cs.PL

    Rich Specifications for Ethereum Smart Contract Verification

    Authors: Christian Bräm, Marco Eilers, Peter Müller, Robin Sierra, Alexander J. Summers

    Abstract: Smart contracts are programs that execute inside blockchains such as Ethereum to manipulate digital assets. Since bugs in smart contracts may lead to substantial financial losses, there is considerable interest in formally proving their correctness. However, the specification and verification of smart contracts faces challenges that do not arise in other application domains. Smart contracts freque… ▽ More

    Submitted 9 September, 2021; v1 submitted 20 April, 2021; originally announced April 2021.

  10. arXiv:1911.08632  [pdf, other

    cs.LO

    Local Reasoning for Global Graph Properties

    Authors: Siddharth Krishna, Alexander J. Summers, Thomas Wies

    Abstract: Separation 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.… ▽ More

    Submitted 19 November, 2019; originally announced November 2019.

  11. arXiv:1908.05799  [pdf, ps, other

    cs.PL cs.LO

    Modular Verification of Heap Reachability Properties in Separation Logic

    Authors: Arshavir Ter-Gabrielyan, Alexander J. Summers, Peter Müller

    Abstract: The correctness of many algorithms and data structures depends on reachability properties, that is, on the existence of chains of references between objects in the heap. Reasoning about reachability is difficult for two main reasons. First, any heap modification may affect an unbounded number of reference chains, which complicates modular verification, in particular, framing. Second, general graph… ▽ More

    Submitted 15 August, 2019; originally announced August 2019.

    Comments: OOPSLA-2019

  12. arXiv:1804.04091  [pdf, other

    cs.PL

    Permission Inference for Array Programs

    Authors: Jérôme Dohrau, Alexander J. Summers, Caterina Urban, Severin Münger, Peter Müller

    Abstract: Information about the memory locations accessed by a program is, for instance, required for program parallelisation and program verification. Existing inference techniques for this information provide only partial solutions for the important class of array-manipulating programs. In this paper, we present a static analysis that infers the memory footprint of an array program in terms of permission… ▽ More

    Submitted 11 April, 2018; originally announced April 2018.

  13. arXiv:1703.06368  [pdf, other

    cs.PL

    Automating Deductive Verification for Weak-Memory Programs

    Authors: Alexander J. Summers, Peter Müller

    Abstract: Writing correct programs for weak memory models such as the C11 memory model is challenging because of the weak consistency guarantees these models provide. The first program logics for the verification of such programs have recently been proposed, but their usage has been limited thus far to manual proofs. Automating proofs in these logics via first-order solvers is non-trivial, due to reasoning… ▽ More

    Submitted 19 February, 2018; v1 submitted 18 March, 2017; originally announced March 2017.

    Comments: Extended version of TACAS 2018 publication

    MSC Class: 68N30 ACM Class: D.2.4; F.3.1

  14. arXiv:1603.00649  [pdf, other

    cs.PL cs.LO

    Automatic Verification of Iterated Separating Conjunctions using Symbolic Execution

    Authors: Peter Müller, Malte Schwerhoff, Alexander J. Summers

    Abstract: In permission logics such as separation logic, the iterated separating conjunction is a quantifier denoting access permission to an unbounded set of heap locations. In contrast to recursive predicates, iterated separating conjunctions do not prescribe a structure on the locations they range over, and so do not restrict how to traverse and modify these locations. This flexibility is important for t… ▽ More

    Submitted 6 May, 2016; v1 submitted 2 March, 2016; originally announced March 2016.

    ACM Class: F.3.1

  15. The Relationship Between Separation Logic and Implicit Dynamic Frames

    Authors: Matthew J. Parkinson, Alexander J. Summers

    Abstract: Separation logic is a concise method for specifying programs that manipulate dynamically allocated storage. Partially inspired by separation logic, Implicit Dynamic Frames has recently been proposed, aiming at first-order tool support. In this paper, we precisely connect the semantics of these two logics. We define a logic whose syntax subsumes both that of a standard separation logic, and that o… ▽ More

    Submitted 29 July, 2012; v1 submitted 30 March, 2012; originally announced March 2012.

    ACM Class: F.3.1

    Journal ref: Logical Methods in Computer Science, Volume 8, Issue 3 (July 31, 2012) lmcs:802