paperbot · PL 论文追踪

全部论文 待读 收藏

P2 Closed forms for numerical loops

数值循环的闭式形式
POPL 3(POPL)2019匹配度 3/10 · 论文属于程序验证与静态分析,研究线性数值循环的闭式表示与安全/终止性判定,但未涉及用户画像核心的 LLM/Agent 与静态分析交叉、浮点程序分析或贝叶斯程序分析;仅作为纯 PL/形式化验证背景有一定邻近性。引用 34 inbox
Zachary Kincaid, Jason Breck, John Cyphert, Thomas Reps
crossref: 2026-09-10

AI 速览

一句话:刻画线性数值循环何时可用有理数上的多项式和指数表示闭式形式,并给出可判定的安全性与终止性验证过程。

本文研究简单数值循环非线性行为的推理问题,基于线性动力系统分析的经典技术。线性动力系统的闭式行为通常可用代数数表示,但这种公式不利于自动化推理。本文刻画了线性循环在何种条件下可在更简单的理论中获得闭式形式,并给出计算算法;算法避免使用代数数,而将闭式形式表示为有理数上的多项式和指数。作者证明该闭式表达逻辑是可判定的,从而得到一类有理数数值循环的安全性和终止性验证判定过程。此外,该闭式计算过程可用于对任意数值程序(控制流不受限、非确定性赋值和递归过程)的行为进行过近似。

问题
如何推理简单数值循环的非线性行为,并对其安全性、终止性等性质进行自动验证。
方法
借鉴线性动力系统分析,刻画线性循环可获简单理论闭式形式的条件,并设计避免代数数、基于有理数多项式与指数的闭式计算算法。
评估
通过可判定性证明给出一类有理数数值循环的安全性与终止性判定过程,并展示该闭式计算可用于过近似任意数值程序的行为。
原文摘要(Abstract)

This paper investigates the problem of reasoning about non-linear behavior of simple numerical loops. Our approach builds on classical techniques for analyzing the behavior of linear dynamical systems. It is well-known that a closed-form representation of the behavior of a linear dynamical system can always be expressed using algebraic numbers, but this approach can create formulas that present an obstacle for automated-reasoning tools. This paper characterizes when linear loops have closed forms in simpler theories that are more amenable to automated reasoning. The algorithms for computing closed forms described in the paper avoid the use of algebraic numbers, and produce closed forms expressed using polynomials and exponentials over rational numbers. We show that the logic for expressing closed forms is decidable, yielding decision procedures for verifying safety and termination of a class of numerical loops over rational numbers. We also show that the procedure for computing closed forms for this class of numerical loops can be used to over-approximate the behavior of arbitrary numerical programs (with unrestricted control flow, non-deterministic assignments, and recursive procedures).

链接与引用

DOI 原文 · PDF(开放获取) ·

BibTeX
@article{paperbot625,
  title = {Closed forms for numerical loops},
  author = {Zachary Kincaid and Jason Breck and John Cyphert and Thomas Reps},
  journal = {Proceedings of the ACM on Programming Languages},
  volume = {3},
  number = {POPL},
  year = {2019},
  doi = {10.1145/3290368}
}