论文标题

Isabelle中LAGC语义的机械化

Mechanization of LAGC Semantics in Isabelle

论文作者

Heidler, Niklas

论文摘要

在尝试以自动方式验证程序的属性时,正式的编程语言语义必须进行。 Din等人使用新方法。通过提出模块化的痕量语义来增强有关并发程序的推理能力,该语义可以灵活地适应最突出的命令式编程语言范式。这些语义通过为个人,本地系统生成抽象的符号痕迹,使本地环境中的评估与全球环境中的评估相结合。然后将迹线组成和凝结,从而为全局系统带来了全局痕迹。因此,这些语义被称为本地抽象,全球混凝土(LAGC)。 在这项工作中,我们在流行的定理环境Isabelle/Hol中介绍了LAGC语义的形式化。给定模型基于Din等人的先前关于LAGC语义理论的工作。并包括基本定理的形式化,While语言的LAGC语义(WL),以及while语言的扩展版本(WLEXT)的LAGC语义。此外,我们还使用我们的isabelle模型来为LAGC语义的几种高级属性提供正式证明,这些属性尚未在原始论文中进行分析。 尽管这项工作的主要目的是以数学上的严格方式对LAGC语义进行形式化,但我们也实现了高水平的证明自动化,并设法为计算程序跟踪的计算贡献了有效的代码生成。由于语义的形式化是高度模块化的,因此将来可以通过更复杂的编程语言范式扩展给定理论。

Formal programming language semantics are imperative when trying to verify properties of programs in an automated manner. Using a new approach, Din et al. strengthen the ability of reasoning about concurrent programs by proposing a modular trace semantics, which can flexibly adapt to the most prominent imperative programming language paradigms. These semantics decouple the evaluation in the local environments from the evaluation in the global environment by generating abstract, symbolic traces for the individual, local systems. The traces are then composed and concretized, resulting in global traces for the global system. Hence, these semantics are called Locally Abstract, Globally Concrete (LAGC). In this work, we present a formalization of the LAGC semantics in the popular theorem proving environment Isabelle/HOL. The given model is based on the prior work on the theory of LAGC semantics by Din et al. and includes formalizations of the basic theorems, the LAGC semantics for the While Language (WL), as well as the LAGC semantics for an extended version of the While Language (WLEXT). We furthermore use our Isabelle model in order to provide formal proofs for several advanced properties of the LAGC semantics, which have not been analyzed in the original paper. Whilst the main goal of the work was to formalize the LAGC semantics in a mathematically rigorous manner, we also achieve a high level of proof automatization and manage to contribute an efficient code-generation for the computation of program traces. As the formalization of the semantics is highly modular, the given theories could in the future be extended with even more sophisticated programming language paradigms.

扫码加入交流群

加入微信交流群

微信交流群二维码

扫码加入学术交流群,获取更多资源