当前位置: X-MOL 学术Form. Asp. Comput. › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
Algebra-Based Reasoning for Loop Synthesis
Formal Aspects of Computing ( IF 1 ) Pub Date : 2022-07-21 , DOI: https://dl.acm.org/doi/10.1145/3527458
Andreas Humenberger, Daneshvar Amrollahi, Nikolaj Bjørner, Laura Kovács

Provably correct software is one of the key challenges of our software-driven society. Program synthesis—the task of constructing a program satisfying a given specification—is one strategy for achieving this. The result of this task is then a program that is correct by design. As in the domain of program verification, handling loops is one of the main ingredients to a successful synthesis procedure.

We present an algorithm for synthesizing loops satisfying a given polynomial loop invariant. The class of loops we are considering can be modeled by a system of algebraic recurrence equations with constant coefficients, thus encoding program loops with affine operations among program variables. We turn the task of loop synthesis into a polynomial constraint problem by precisely characterizing the set of all loops satisfying the given invariant. We prove soundness of our approach, as well as its completeness with respect to an a priori fixed upper bound on the number of program variables. Our work has applications toward synthesizing loops satisfying a given polynomial loop invariant—program verification—as well as generating number sequences from algebraic relations. To understand viability of the methodology and heuristics for synthesizing loops, we implement and evaluate the method using the Absynth tool.



中文翻译:

基于代数的循环合成推理

可证明正确的软件是我们软件驱动社会的主要挑战之一。程序综合——构建满足给定规范的程序的任务——是实现这一目标的一种策略。该任务的结果是一个设计正确的程序。与程序验证领域一样,处理循环是成功合成过程的主要成分之一。

我们提出了一种用于合成满足给定多项式循环不变量的循环的算法。我们正在考虑的循环类可以由具有常数系数的代数递归方程系统建模,从而在程序变量之间使用仿射运算对程序循环进行编码。我们通过精确表征满足给定不变量的所有循环的集合,将循环合成的任务转变为多项式约束问题。我们证明了我们的方法的合理性,以及关于先验的完整性固定程序变量数量的上限。我们的工作适用于合成满足给定多项式循环不变量的循环——程序验证——以及从代数关系生成数字序列。为了理解合成循环的方法和启发式方法的可行性,我们使用苦艾酒工具。

更新日期:2022-07-21
down
wechat
bug