Weak-memory local reasoning

Program logics are formal logics designed to facilitate specification and correctness reasoning for software programs. Separation logic, a recent program logic for C-like programs, has found great success in automated verification due in large part to its embodiment of the principle of local reasoni...

Full description

Bibliographic Details
Main Author: Wehrman, Ian Anthony
Format: Others
Language:en_US
Published: 2013
Subjects:
Online Access:http://hdl.handle.net/2152/19475
id ndltd-UTEXAS-oai-repositories.lib.utexas.edu-2152-19475
record_format oai_dc
spelling ndltd-UTEXAS-oai-repositories.lib.utexas.edu-2152-194752015-09-20T17:13:29ZWeak-memory local reasoningWehrman, Ian AnthonyProgrammingFormal methodsConcurrencyMemory modelsProgram logics are formal logics designed to facilitate specification and correctness reasoning for software programs. Separation logic, a recent program logic for C-like programs, has found great success in automated verification due in large part to its embodiment of the principle of local reasoning, in which specifications and proofs are restricted to just those resources—variables, shared memory addresses, locks, etc.—used by the program during execution. Existing program logics make the strong assumption that all threads agree on the values of shared memory at all times. But, on modern computer architectures, this assumption is unsound for certain shared-memory concurrent programs: namely, those with races. Typically races are considered to be errors, but some programs, like lock-free concurrent data structures, are necessarily racy. Verification of these difficult programs must take into account the weaker models of memory provided by the architectures on which they execute. This dissertation project seeks to explicate a local reasoning principle for x86-like architectures. The principle is demonstrated with a new program logic for concurrent C-like programs that incorporates ideas from separation logic. The goal of the logic is to allow verification of racy programs like concurrent data structures for which no general-purpose high-level verification techniques exist.text2013-02-15T16:32:02Z2012-122012-11-20December 20122013-02-15T16:32:02Zapplication/pdfhttp://hdl.handle.net/2152/19475en_US
collection NDLTD
language en_US
format Others
sources NDLTD
topic Programming
Formal methods
Concurrency
Memory models
spellingShingle Programming
Formal methods
Concurrency
Memory models
Wehrman, Ian Anthony
Weak-memory local reasoning
description Program logics are formal logics designed to facilitate specification and correctness reasoning for software programs. Separation logic, a recent program logic for C-like programs, has found great success in automated verification due in large part to its embodiment of the principle of local reasoning, in which specifications and proofs are restricted to just those resources—variables, shared memory addresses, locks, etc.—used by the program during execution. Existing program logics make the strong assumption that all threads agree on the values of shared memory at all times. But, on modern computer architectures, this assumption is unsound for certain shared-memory concurrent programs: namely, those with races. Typically races are considered to be errors, but some programs, like lock-free concurrent data structures, are necessarily racy. Verification of these difficult programs must take into account the weaker models of memory provided by the architectures on which they execute. This dissertation project seeks to explicate a local reasoning principle for x86-like architectures. The principle is demonstrated with a new program logic for concurrent C-like programs that incorporates ideas from separation logic. The goal of the logic is to allow verification of racy programs like concurrent data structures for which no general-purpose high-level verification techniques exist. === text
author Wehrman, Ian Anthony
author_facet Wehrman, Ian Anthony
author_sort Wehrman, Ian Anthony
title Weak-memory local reasoning
title_short Weak-memory local reasoning
title_full Weak-memory local reasoning
title_fullStr Weak-memory local reasoning
title_full_unstemmed Weak-memory local reasoning
title_sort weak-memory local reasoning
publishDate 2013
url http://hdl.handle.net/2152/19475
work_keys_str_mv AT wehrmaniananthony weakmemorylocalreasoning
_version_ 1716822992238936064