一句话:提出计算仿射程序各位置最强多项式(代数)不变量的算法,核心是计算有理矩阵生成半群的 Zariski 闭包。
论文研究仿射程序的最强多项式不变量生成问题。仿射程序只含非确定性分支,所有赋值均为仿射表达式。作者提出一种算法,可对程序每个控制位置计算在该位置成立的最强多项式(代数)不变量,即刻画所有成立的多项式等式。其核心工具是一个独立的代数结果:给定同维有理方阵的有限集合,能够计算它们所生成半群的 Zariski 闭包。由于循环中变量变换可表示为矩阵乘法,不变量集合对应于该半群作用下的代数不变量,因此 Zariski 闭包的计算直接给出最强不变量的精确刻画。该工作将代数几何方法引入程序分析,为仿射程序不变量提供可计算性结果。
We exhibit an algorithm to compute the strongest polynomial (or algebraic) invariants that hold at each location of a given affine program (i.e., a program having only non-deterministic (as opposed to conditional) branching and all of whose assignments are given by affine expressions). Our main tool is an algebraic result of independent interest: given a finite set of rational square matrices of the same dimension, we show how to compute the Zariski closure of the semigroup that they generate.