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 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 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逻辑(RHL)的扣减规则以及多种产品自动模型方面探索了对齐。 文章展示了Kleene Algebra与Tests(KAT)的简单延伸,称为BiKAT,子包前配方,包括无处不在特性的校准证人,这为这些属性带来了新的RHL规则。 匹配可以按逻辑发现,也可以手工设计,但无论哪种情况,都必须证明它们与原始程序是否适当; 明确的代数可以通过方程式推理来提供建设性的证据。 此外,我们的方法继承了基于KAT的技术和工具的算法效益,这些技术和工具适用于一系列语义模型。