论文标题
关系验证的对准代数
An algebra of alignment for relational verification
论文作者
论文摘要
关系验证包括信息流安全性,回归验证,编译器的翻译验证等等。有效的程序和计算与相关的计算有助于使用更简单的关系不变性和关系程序规范,这又可以实现自动化和模块化推理。已经根据痕量对,关系hoare逻辑(RHL)和几种形式的产品自动机探索了对齐。本文展示了Kleene代数的简单扩展如何使用测试(KAT)(KAT),称为Bikat,包括先前的公式,包括对forall存在的属性的一致性证人,这使这些属性阐明了新的RHL风格规则。可以通过算法或手动设计对齐,但在任何一种情况下,都必须证明它们相对于原始程序的足够。明确的代数可以通过方程推理实现建设性证明。此外,我们的方法继承了现有的基于KAT的技术和工具的算法好处,这些技术和工具适用于各种语义模型。
Relational verification encompasses information flow security, regression verification, translation validation for compilers, and more. Effective alignment of the programs and computations to be related facilitates use of simpler relational invariants and relational procedure specs, which in turn enables automation and modular reasoning. Alignment has been explored in terms of trace pairs, deductive rules of relational Hoare logics (RHL), and several forms of product automata. This article shows how a simple extension of Kleene Algebra with Tests (KAT), called BiKAT, subsumes prior formulations, including alignment witnesses for forall-exists properties, which brings to light new RHL-style rules for such properties. Alignments can be discovered algorithmically or devised manually but, in either case, their adequacy with respect to the original programs must be proved; an explicit algebra enables constructive proof by equational reasoning. Furthermore our approach inherits algorithmic benefits from existing KAT-based techniques and tools, which are applicable to a range of semantic models.