paperbot · PL 论文追踪

全部论文 待读 收藏

P2 Sibyl: Improving Software Engineering Tools with SMT Selection

Sibyl:通过 SMT 求解器选择改进软件工程工具
ICSE 2023 IEEE/ACM 45th International Conference on Software Engineering (ICSE)2023匹配度 4/10 · 该论文用 GNN 做 SMT 求解器自动选择以加速验证/测试/合成等软件工程工具,属于机器学习辅助形式化验证与程序分析基础设施,和 AI→PL 方向有部分交集;但不涉及 LLM/Agent,也不是浮点程序分析或贝叶斯程序分析,因此与画像核心问题匹配有限。引用 8 inbox
Will Leeson, Matthew B Dwyer, Antonio Filieri
crossref: 2026-09-12dblp: 2026-09-12

AI 速览

一句话:提出基于图神经网络的 SMT 求解器自动选择器 Sibyl,显著加速多种软件工程工具中的 SMT 查询求解。

SMT 求解器常用于程序验证、测试生成和程序合成等工具的后端。不同求解器针对不同逻辑和问题优化,查询微小变化即可改变最优求解器,设计时固定选择会错失优化机会。本文提出基于图神经网络(GNN)的自动 SMT 选择器 Sibyl。Sibyl 将查询表示为图,用 GNN 预测各候选求解器在该查询上的性能,并自动学习训练集特征,无需人工特征工程。训练后能快速准确预测,大幅减少求解一组查询的时间。在 SMT 竞赛、符号执行引擎、有界模型检测器和程序合成工具四种场景中评估,Sibyl 几乎在所有情况下优于现有技术,泛化性更好,开销低,有潜力加速多种工具。

问题
软件工程工具常固定选用单一 SMT 求解器,但不同求解器在不同查询上性能差异巨大,设计时选择会错失优化机会,甚至造成显著性能损失。
方法
Sibyl 将 SMT 查询表示为图结构,利用图神经网络预测一组求解器中每个求解器在该查询上的表现,并自动学习查询特征,无需人工特征工程。
评估
在 SMT 竞赛、符号执行引擎、有界模型检测器和程序合成工具四种场景中评估,Sibyl 在几乎所有场景下优于现有技术,泛化性更好,且开销低,能加速多种软件工程工具。
原文摘要(Abstract)

SMT solvers are often used in the back end of different software engineering tools─e.g., program verifiers, test generators, or program synthesizers. There are a plethora of algorithmic techniques for solving SMT queries. Among the available SMT solvers, each employs its own combination of algorithmic techniques that are optimized for different fragments of logics and problem types. The most efficient solver can change with small changes in the SMT query, which makes it nontrivial to decide which solver to use. Consequently, designers of software engineering tools often select a single solver, based on familiarity or convenience, and tailor their tool towards it. Choosing an SMT solver at design time misses the opportunity to optimize query solve times and, for tools where SMT solving is a bottleneck, the performance loss can be significant. In this work, we present Sibyl, an automated SMT selector based on graph neural networks (GNNs). Sibyl creates a graph representation of a given SMT query and uses GNNs to predict how each solver in a suite of SMT solvers would perform on said query. Sibyl learns to predict based on features of SMT queries that are specific to the population on which it is trained - avoiding the need for manual feature engineering. Once trained, Sibyl makes fast and accurate predictions which can substantially reduce the time needed to solve a set of SMT queries. We evaluate Sibyl in four scenarios in which SMT solvers are used: in competition, in a symbolic execution engine, in a bounded model checker, and in a program synthesis tool. We find that Sibyl improves upon the state of the art in nearly every case and provide evidence that it generalizes better than existing techniques. Further, we evaluate Sibyl's overhead and demonstrate that it has the potential to speedup a variety of different software engineering tools.

链接与引用

DOI 原文 · DBLP

BibTeX
@inproceedings{LeesonDF23,
  title = {Sibyl: Improving Software Engineering Tools with SMT Selection},
  author = {Will Leeson and Matthew B Dwyer and Antonio Filieri},
  booktitle = {ICSE},
  year = {2023},
  doi = {10.1109/icse48619.2023.00184}
}