Small Specifications for Tree Update

O'Hearn, Reynolds and Yang introduced Separation Logic to provide modular reasoning about simple, mutable data structures in memory. They were able to construct small specifications of programs, by reasoning about the local parts of memory accessed by programs. Gardner, Calcagno and Zarfaty generalised this work, introducing Context Logic to reason about more complex data structures. In particular, they developed a formal, compositional specification of the Document Object Model, a W3C XML update library. Whilst keeping to the spirit of local reasoning, they were not able to retain small specifications. We introduce Segment Logic, which provides a more fine-grained analysis of the tree structure and yields small specifications. As well as being aesthetically pleasing, small specifications are important for reasoning about concurrent tree update.

[1]  Peter W. O'Hearn,et al.  Resources, Concurrency and Local Reasoning , 2004, CONCUR.

[2]  Peter W. O'Hearn,et al.  Smallfoot: Modular Automatic Assertion Checking with Separation Logic , 2005, FMCO.

[3]  Ian Stark,et al.  Free-Algebra Models for the pi-Calculus , 2005, FoSSaCS.

[4]  Peter W. O'Hearn,et al.  Resources, concurrency, and local reasoning , 2007 .

[5]  Benjamin C. Pierce,et al.  XDuce: A statically typed XML processing language , 2003, TOIT.

[6]  Stephen Brookes A semantics for concurrent separation logic , 2007, Theor. Comput. Sci..

[7]  Simon L. Peyton Jones,et al.  Type Classes in Haskell , 1994, ESOP.

[8]  ROBIN MILNER,et al.  Edinburgh Research Explorer A Calculus of Mobile Processes, I , 2003 .

[9]  Luca Cardelli,et al.  TQL: A Query Language for Semistructured Data Based on the Ambient Logic , 2003 .

[10]  Robin Milner,et al.  Theories for the Global Ubiquitous Computer , 2004, FoSSaCS.

[11]  Peter W. O'Hearn,et al.  Local Reasoning about Programs that Alter Data Structures , 2001, CSL.

[12]  Philippa Gardner,et al.  Local Hoare reasoning about DOM , 2008, PODS.

[13]  Viktor Vafeiadis,et al.  Modular fine-grained concurrency verification , 2008 .

[14]  Brian Campbell,et al.  Amortised Memory Analysis Using the Depth of Data Structures , 2009, ESOP.

[15]  Robin Milner,et al.  A Calculus of Mobile Processes, II , 1992, Inf. Comput..

[16]  Alex K. Simpson,et al.  Computational Adequacy in an Elementary Topos , 1998, CSL.

[17]  Philippa Gardner,et al.  Adjunct elimination in Context Logic for trees , 2010, Inf. Comput..

[18]  Robin Milner Pi-Nets: A Graphical Form of pi-Calculus , 1994, ESOP.

[19]  D. Walker,et al.  A Calculus of Mobile Processes, Part I , 1989 .

[20]  Peter W. O'Hearn,et al.  BI as an assertion language for mutable data structures , 2001, POPL '01.

[21]  Peter W. O'Hearn,et al.  A Semantic Basis for Local Reasoning , 2002, FoSSaCS.

[22]  Philippa Gardner,et al.  Footprints in Local Reasoning , 2009, Log. Methods Comput. Sci..

[23]  Philippa Gardner,et al.  Reasoning about High-Level Tree Update and its Low-Level Implementation , 2009 .

[24]  Andrew M. Pitts,et al.  A New Approach to Abstract Syntax with Variable Binding , 2002, Formal Aspects of Computing.

[25]  Frank D. Valencia,et al.  Formal Methods for Components and Objects , 2002, Lecture Notes in Computer Science.

[26]  Viktor Vafeiadis,et al.  A Marriage of Rely/Guarantee and Separation Logic , 2007, CONCUR.

[27]  Philippa Gardner,et al.  Context logic and tree update , 2005, POPL '05.

[28]  Robin Milner,et al.  A Calculus of Mobile Processes, II , 1992, Inf. Comput..

[29]  Philippa Gardner,et al.  DOM: Towards a Formal Specification , 2008, PLAN-X.