一句话:提出基于对象的分层博弈语义,用对象策略与正则映射刻画可认证抽象层及其并发扩展。
大型软件验证依赖可组合的语言、语义模型与规约,但现有可认证抽象层模型因缺乏状态封装而限制组合性。本文提出一种新的博弈语义:将层接口建模为对象类型(层签名)与对象策略,将层实现建模为对象空间之间的正则映射,并当实现与下层对象策略的组合实现上层对象策略时视为可认证。模型可扩展非确定性;进一步引入并发对象空间,将顺序迹模独立操作置换等同,从而表达受保护共享对象并发与票据锁实现。
Large-scale software verification relies critically on the use of compositional languages, semantic models, specifications, and verification techniques. Recent work on certified abstraction layers synthesizes game semantics, the refinement calculus, and algebraic effects to enable the composition of heterogeneous components into larger certified systems. However, in existing models of certified abstraction layers, compositionality is restricted by the lack of encapsulation of state. In this paper, we present a novel game model for certified abstraction layers where the semantics of layer interfaces and implementations are defined solely based on their observable behaviors. Our key idea is to leverage Reddy's pioneer work on modeling the semantics of imperative languages not as functions on global states but as objects with their observable behaviors. We show that a layer interface can be modeled as an object type (i.e., a layer signature) plus an object strategy. A layer implementation is then essentially a regular map, in the sense of Reddy, from an object with the underlay signature to that with the overlay signature. A layer implementation is certified when its composition with the underlay object strategy implements the overlay object strategy. We also describe an extension that allows for non-determinism in layer interfaces. After formulating layer implementations as regular maps between object spaces, we move to concurrency and design a notion of concurrent object space, where sequential traces may be identified modulo permutation of independent operations. We show how to express protected shared object concurrency, and a ticket lock implementation, in a simple model based on regular maps between concurrent object spaces.
@article{paperbot1558,
title = {Layered and object-based game semantics},
author = {Arthur Oliveira Vale and Paul-André Melliès and Zhong Shao and Jérémie Koenig and Léo Stefanesco},
journal = {Proceedings of the ACM on Programming Languages},
volume = {6},
number = {POPL},
year = {2022},
doi = {10.1145/3498703}
}