一句话:提出“可见证性”概念,证明多数不可判定问题可计算地从任意可判定近似构造出反例输入。
论文研究不可判定问题与其可判定近似的关系:精确求解不可能,近似必然不精确,但此前缺乏可计算性基础来判断能否定位不精确性。作者定义“可见证问题”:存在可计算函数,输入任意针对该问题的可判定近似的代码,输出使其失效的见证输入。论文用多一归约、补类封闭和对角化证明对角停机问题 K 可见证,且可见证类在补与多一归约下封闭,因而 Rice 定理中的所有非平凡语义性质均可见证;同时构造不可见证的不可判定问题,并证明两类基数均为 2^ℵ0。结果表明,可见证的不可判定问题虽不可精确求解,却总可改进任意可判定近似并识别其精度问题。
Many problems in programming language theory and formal methods are undecidable, so they cannot be solved precisely. Practical techniques for dealing with undecidable problems are often based on decidable approximations. Undecidability implies that those approximations are always imprecise. Typically, practitioners use heuristics and ad hoc reasoning to identify imprecision issues and improve approximations, but there is a lack of computability-theoretic foundations about whether those efforts can succeed. This paper shows a surprising interplay between undecidability and decidable approximations: there exists a class of undecidable problems, such that it is computable to transform any decidable approximation to a witness input demonstrating its imprecision. We call those undecidable problems witnessable problems . For example, if a program property P is witnessable, then there exists a computable function f P , such that f P takes as input the code of any program analyzer targeting P and produces an input program w on which the program analyzer is imprecise. An even more surprising fact is that the class of witnessable problems includes almost all undecidable problems in programming language theory and formal methods. Specifically, we prove the diagonal halting problem K is witnessable, and the class of witnessable problems is closed under complements and many-one reductions. In particular, all “non-trivial semantic properties of programs” mentioned in Rice’s theorem are witnessable. We also explicitly construct a problem in the non-witnessable (and undecidable) class and show that both classes have cardinality 2 ℵ 0 . Our results offer a new perspective on the understanding of undecidability: for witnessable problems, although it is impossible to solve them precisely, it is always possible to improve any decidable approximation to make it closer to the precise solution. This fact formally demonstrates that research efforts on such approximations are promising and shows there exist universal ways to identify precision issues of program analyzers, program verifiers, SMT solvers, etc., because their essences are decidable approximations of witnessable problems.