dx.doi.org/10.2168/LMCS-7(2:17)2011

Preview meta tags from the dx.doi.org website.

Linked Hostnames

16

Thumbnail

Search Engine Appearance

Google

https://dx.doi.org/10.2168/LMCS-7(2:17)2011

Amortised Resource Analysis with Separation Logic

Type-based amortised resource analysis following Hofmann and Jost---where resources are associated with individual elements of data structures and doled out to the programmer under a linear typing discipline---have been successful in providing concrete resource bounds for functional programs, with good support for inference. In this work we translate the idea of amortised resource analysis to imperative pointer-manipulating languages by embedding a logic of resources, based on the affine intuitionistic Logic of Bunched Implications, within Separation Logic. The Separation Logic component allows us to assert the presence and shape of mutable data structures on the heap, while the resource component allows us to state the consumable resources associated with each member of the structure. We present the logic on a small imperative language, based on Java bytecode, with procedures and mutable heap. We have formalised the logic and its soundness property within the Coq proof assistant and extracted a certified verification condition generator. We also describe an proof search procedure that allows generated verification conditions to be discharged while using linear programming to infer consumable resource annotations. We demonstrate the logic on some examples, including proving the termination of in-place list reversal on lists with cyclic tails.



Bing

Amortised Resource Analysis with Separation Logic

https://dx.doi.org/10.2168/LMCS-7(2:17)2011

Type-based amortised resource analysis following Hofmann and Jost---where resources are associated with individual elements of data structures and doled out to the programmer under a linear typing discipline---have been successful in providing concrete resource bounds for functional programs, with good support for inference. In this work we translate the idea of amortised resource analysis to imperative pointer-manipulating languages by embedding a logic of resources, based on the affine intuitionistic Logic of Bunched Implications, within Separation Logic. The Separation Logic component allows us to assert the presence and shape of mutable data structures on the heap, while the resource component allows us to state the consumable resources associated with each member of the structure. We present the logic on a small imperative language, based on Java bytecode, with procedures and mutable heap. We have formalised the logic and its soundness property within the Coq proof assistant and extracted a certified verification condition generator. We also describe an proof search procedure that allows generated verification conditions to be discharged while using linear programming to infer consumable resource annotations. We demonstrate the logic on some examples, including proving the termination of in-place list reversal on lists with cyclic tails.



DuckDuckGo

https://dx.doi.org/10.2168/LMCS-7(2:17)2011

Amortised Resource Analysis with Separation Logic

Type-based amortised resource analysis following Hofmann and Jost---where resources are associated with individual elements of data structures and doled out to the programmer under a linear typing discipline---have been successful in providing concrete resource bounds for functional programs, with good support for inference. In this work we translate the idea of amortised resource analysis to imperative pointer-manipulating languages by embedding a logic of resources, based on the affine intuitionistic Logic of Bunched Implications, within Separation Logic. The Separation Logic component allows us to assert the presence and shape of mutable data structures on the heap, while the resource component allows us to state the consumable resources associated with each member of the structure. We present the logic on a small imperative language, based on Java bytecode, with procedures and mutable heap. We have formalised the logic and its soundness property within the Coq proof assistant and extracted a certified verification condition generator. We also describe an proof search procedure that allows generated verification conditions to be discharged while using linear programming to infer consumable resource annotations. We demonstrate the logic on some examples, including proving the termination of in-place list reversal on lists with cyclic tails.

  • General Meta Tags

    39
    • title
      #685 - Amortised Resource Analysis with Separation Logic
    • viewport
      width=device-width, initial-scale=1
    • Content-Type
      text/html; charset=utf-8
    • citation_journal_title
      Logical Methods in Computer Science
    • citation_author
      Robert Atkey
  • Open Graph Meta Tags

    11
    • og:title
      Amortised Resource Analysis with Separation Logic
    • og:type
      article
    • og:article:published_time
      2011-06-23 00:00:00
    • og:article:modified_time
      2025-03-31 21:09:13
    • og:article:author
      Robert Atkey
  • Twitter Meta Tags

    6
    • twitter:card
      summary_large_image
    • twitter:site
      @episciences
    • twitter:title
      Amortised Resource Analysis with Separation Logic
    • twitter:description
      Type-based amortised resource analysis following Hofmann and Jost---where resources are associated with individual elements of data structures and doled out to the programmer under a linear typing discipline---have been successful in providing concrete resource bounds for functional programs, with good support for inference. In this work we translate the idea of amortised resource analysis to imperative pointer-manipulating languages by embedding a logic of resources, based on the affine intuitionistic Logic of Bunched Implications, within Separation Logic. The Separation Logic component allows us to assert the presence and shape of mutable data structures on the heap, while the resource component allows us to state the consumable resources associated with each member of the structure. We present the logic on a small imperative language, based on Java bytecode, with procedures and mutable heap. We have formalised the logic and its soundness property within the Coq proof assistant and extracted a certified verification condition generator. We also describe an proof search procedure that allows generated verification conditions to be discharged while using linear programming to infer consumable resource annotations. We demonstrate the logic on some examples, including proving the termination of in-place list reversal on lists with cyclic tails.
    • twitter:image
      https://lmcs.episciences.org/img/episciences_logo_1081x1081.jpg
  • Link Tags

    17
    • apple-touch-icon
      /apple-touch-icon.png?v=20211124
    • dns-prefetch
      https://cdnjs.cloudflare.com
    • dns-prefetch
      https://cas.ccsd.cnrs.fr
    • http://www.w3.org/ns/ldp#inbox
      https://inbox.episciences.org/
    • icon
      /favicon-32x32.png?v=20211124

Emails

3

Links

140