Article ID | Journal | Published Year | Pages | File Type |
---|---|---|---|---|
6875269 | Science of Computer Programming | 2018 | 42 Pages |
Abstract
Our semantics is based on refining a trace-based semantics for first-order programs due to Brookes. By moving from concrete to abstract locations, and adding type refinements that capture the possible side-effects of both expressions and their concurrent environments, we are able to validate many equivalences that do not hold in an unrefined model. The meanings of types are expressed using a game-based logical relation over sets of traces. Two programs e1 and e2 are logically related if one is able to solve a two-player game: for any trace with result value v1 in the semantics of e1 (challenge) that the player presents, the opponent can present an (response) equivalent trace in the semantics of e2 with a logically related result value v2.
Related Topics
Physical Sciences and Engineering
Computer Science
Computational Theory and Mathematics
Authors
Nick Benton, Martin Hofmann, Vivek Nigam,