• Cite Icon5
  • https://doi.org/10.1007/978-3-642-24559-6_20Copy DOI Icon

Mutation in Linked Data Structures

  • Jan 1, 2011
  • Ewen Maclean +1 more
Show More
  • Abstract
  • Literature Map
  • References
  • Citations
  • Similar Papers
Abstract

Abstract Separation logic was developed as an extension to Hoare logic with the aim of simplifying pointer program proofs. A key feature of the logic is that it focuses the reasoning effort on only those parts of the heap that are relevant to a program - so called local reasoning. Underpinning this local reasoning are the separating conjunction and separating implication operators. Here we present an automated reasoning technique called mutation that provides guidance for separation logic proofs. Specifically, given two heap structures specified within separation logic, mutation attempts to construct an equivalence proof using a difference reduction strategy. Pivotal to this strategy is a generalised decomposition operator which is essential when matching heap structures. We show how mutation provides an effective strategy for proving the functional correctness of iterative and recursive programs within the context of weakest precondition analysis. Currently, mutation is implemented as a proof plan within our CORE program verification system. CORE combines results from shape analysis with our work on invariant generation and proof planning. We present our results for mutation within the context of the CORE system.KeywordsCore SystemSeparation LogicFunctional CorrectnessRecursive ProgramLoop InvariantThese keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

Similar Papers
  • Book Chapter
  • Citations6

Proof Planning for First-Order Temporal Logic

  • Jan 01, 2005
  • Claudio Castellini +1
  • Conference Article
  • Citations1

SuSLik: Synthesis of Safe Pointer-Manipulating Programs (Invited Tutorial)

  • Oct 01, 2019
  • Nadia Polikarpova
  • Conference Article
  • Citations1

Recursion in logics of programs

  • Jan 01, 1979
  • David Harel
  • Conference Article
  • Citations23

First order programming logic

  • Jan 01, 1979
  • Robert Cartwright +1
  • Book Chapter

Separation Logic to Meliorate Software Testing and Validation

  • Jul 27, 2016
  • Abhishek Kr Singh +1
  • PDF
  • Research Article
  • Citations46

Quantitative separation logic: a logic for reasoning about probabilistic pointer programs

  • Jan 02, 2019
  • Proceedings of the ACM on Programming Languages
  • Kevin Batz +4
  • Conference Article

Revisiting Concurrent Separation Logic and Operational Semantics

  • Mar 01, 2015
  • Pedro Soares +2
  • Research Article
  • Citations17

Shape Analysis of Sets.

  • Jan 01, 2006
  • DROPS (Schloss Dagstuhl – Leibniz Center for Informatics)
  • Jan Reineke
  • Book Chapter

Deciding Satisfiability for Overlaid Symbolic Heaps

  • Sep 14, 2025
  • Nicolas Peltier +2
  • Conference Article
  • Citations17

Compositional Non-Interference for Fine-Grained Concurrent Programs

  • May 01, 2021
  • Lirias (KU Leuven)
  • Dan Frumin +2
  • Research Article
  • Citations3

Multris: Functional Verification of Multiparty Message Passing in Separation Logic

  • Oct 08, 2024
  • Proceedings of the ACM on Programming Languages
  • Jonas Kastberg Hinrichsen +2
  • Book Chapter
  • Citations25

Verification of Loop Parallelisations

  • Jan 01, 2015
  • Stefan Blom +2
  • Book Chapter

Pointer Program Synthesis as Non-deterministic Planning

  • Jan 01, 2021
  • Xu Lu +1
  • Research Article
  • Citations41

Focusing in algorithm explanation

  • Jan 01, 2000
  • IEEE Transactions on Visualization and Computer Graphics
  • B Braune +1
  • Book Chapter
  • Citations6

Tree-Traversal Orientation Analysis

  • Nov 02, 2006
  • Kevin Andrusky +2
Cactus Communications logo

Copyright 2026 Cactus Communications. All rights reserved.