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.
翻译:关系核查包括信息流安全、回归核查、编篡者翻译验证等。 有效地调整相关程序和计算有助于使用更简单的关联变量和关联程序规格,这反过来又有助于自动化和模块推理。 已经探索了跟踪配对、关系Hoare逻辑的推理规则以及多种形式的产品自动成形。 文章展示了Kleene Algebra与测试(KAT)的简单延伸,称为BikAT,子合成先前的配方,包括所有存在特性的校准证人,这为此类属性带来了新的RHL型规则。 匹配可以以逻辑方式发现,也可以手工设计,但无论哪种情况,都必须证明它们与原始程序是否适当; 明确的代数可以通过等式推理来提供建设性的证据。 此外,我们的方法还从现有的基于KAT的技术和工具(KAT)的算法中获益,这些技术和工具适用于一系列语义模型。