BRIDGE: Building Representations In Domain Guided Program Synthesis
California Institute of Technology(加州理工学院);Amazon(亚马逊)
BRIDGE通过多艺术ifacts程序合成框架提升Lean验证正确性,结合代码、规范和定理证明领域,提高生成效率和正确率。
2026-05-14 cs.LG cs.PL
Using ACL2 to Verify Loop Pipelining in Behavioral Synthesis
行为综合涉及将电子系统级(ESL)设计编译为寄存器传输级(RTL)实现。循环流水线是行为综合中最关键和最复杂的转换之一。验证循环流水线算法是具有挑战性的,因为有一个巨大的语义差距之间的输入顺序设计和输出流水线实现,使其不可行的自动顺序等价性检查技术来验证其等价性。我们讨论我们正在进行的努力,使用ACL 2认证循环流水线转换。证明的完成是正在进行的工作。然而,到目前为止开发的一些见解可能已经对ACL2社区有价值。特别是,我们讨论了我们形式化的密钥不变量,这与大多数管道证明中使用的密钥不变量非常不同。我们讨论了这个不变量的需要,它在ACL 2中的形式化,以及我们设想的使用不变量的证明。我们还讨论了一些权衡,挑战,以及在项目过程中开发的见解。
2014-06-06 cs.LO cs.PL
Program Synthesis using Abstraction Refinement
提出了一种基于反例引导的抽象求精的示例引导程序合成方法。我们的方法使用的抽象语义的底层DSL找到一个程序$P$的抽象行为满足的例子。然而,由于程序$P$可能是虚假的具体语义,我们的方法迭代地细化抽象,直到我们找到一个程序,满足的例子或证明没有这样的DSL程序存在。由于许多程序在其抽象语义方面具有相同的输入-输出行为,因此与使用纯具体语义的现有技术相比,这种合成方法显著地减小了搜索空间。虽然合成使用抽象细化(SYNGAR)可以在不同的设置中实现,我们提出了一个基于细化的合成算法,使用抽象有限树自动机(AFTA)。我们的技术使用一个粗略的初始程序抽象来构建一个初始的AFTA,这是迭代完善,通过构建任何虚假程序的不正确性证明。除了排除以前的AFTA所接受的虚假程序外,不正确性的证明也有助于排除许多其他虚假程序。我们在一个名为\tool的框架中实现了这些想法。我们使用BLAZE框架来构建字符串和矩阵变换的合成器,并将BLAZE与现有技术进行比较。我们对字符串域的研究结果表明,BLAZE与FlashFill(一种现在部署在Microsoft PowerShell中的特定于域的合成器)相比毫不逊色。在矩阵操作的背景下,我们比较BLAZE对散文,一个国家的最先进的通用VSA为基础的合成器,并表明BLAZE结果在一个90倍的速度超过散文。
2017-10-21 cs.PL
Theory Exploration Powered By Deductive Synthesis
近年来,经过验证的软件数量大幅增长。复杂性质的证明现在可以使用高阶理论和微积分来实现。复杂的性质导致了越来越多的定义和相关引理,它们构成了证明构造的一个组成部分。在此之后--无论是自动的还是半自动的--计算机辅助引理发现的方法已经出现。在这项工作中,我们引入了一个新的符号技术自下而上的引理发现,也就是说,从一个基本的归纳数据类型和递归定义集的引理库的生成。这被称为理论探索问题,到目前为止,已经提出了基于反例生成或更流行的随机测试与一阶求解器相结合的解决方案。我们的新方法,是纯粹的演绎,消除了随机测试作为一个过滤阶段和SMT求解器的需要。因此,它适合于组合推理和处理用户定义的高阶函数。我们的实现已经示出找到比现有技术更多的引理,同时避免冗余。
2021-11-25 cs.PL
ProofWala: A Framework for Multilingual Proof Data Synthesis and Theorem-Proving
University of Texas, Austin, USA(得克萨斯大学奥斯汀分校)
提出ProofWala框架,通过itp-interface库实现与交互式定理证明器的程序化交互,支持多语言证明数据合成、并行证明搜索,并验证了跨语言与跨领域迁移的有效性。
2026-05-29 cs.AI cs.LG cs.LO
Towards Neural Synthesis for SMT-Assisted Proof-Oriented Programming
Microsoft Research(微软研究院);University of Cambridge(剑桥大学);University of Ottawa(渥太华大学)
本文构建了大规模F*程序与证明数据集及片段检查器,研究用AI合成证明导向程序,发现微调小模型性能可比肩GPT-4且成本更低,并验证了基于类型的检索增强技术的显著效果。
2024-09-04 cs.AI cs.PL cs.SE
Certified Program Synthesis with a Multi-Modal Verifier
National University of Singapore(新加坡国立大学);Neapolis University Pafos(纳皮奥斯大学帕福斯)
本文提出LeetProof,通过多模验证器解决认证程序合成中的规范缺陷和验证模式碎片化问题,实现更高效的全认证解决方案。
2026-04-17 cs.AI cs.PL cs.SE
Synthesizing Coupling Proofs of Differential Privacy
差分隐私已经成为一个有前途的概率隐私公式,在学术界和工业界产生了浓厚的兴趣。我们提出了一个按钮,验证$\varepsilon$ -差分隐私的复杂的随机算法的自动化技术。我们做了几个概念,算法和实际的贡献:(一)灵感来自最近的进展近似耦合和随机对齐,我们提出了一种新的证明技术,称为耦合策略,铸造差分隐私证明作为一个胜利的策略,在游戏中,我们有有限的隐私资源消耗。(ii)为了发现一个获胜的策略,我们提出了一个基于约束的制定的问题作为一组霍恩模耦合(HMC)的约束,一阶霍恩条款和概率约束的新组合。(iii)我们提出了一种解决HMC约束的技术,通过将概率约束转换为逻辑约束与未解释的功能。(iv)最后,我们实现了我们的技术在FairSquare验证器,并提供了第一个自动化的隐私证明的一些具有挑战性的算法从差分隐私文献,包括报告噪声最大,指数机制,稀疏向量机制。
2017-11-08 cs.PL
Semantics-Guided Synthesis
本文提出了一种新的程序合成框架,称为语义引导合成(SemGuS),它允许用户提供语法和语义的语言中的结构。SemGuS接受递归定义的大步语义,这允许它用于指定和解决命令式程序设计语言上的合成问题,该命令式编程语言可能包含具有无限行为的循环。SemGuS的可定制性质还允许在非标准语义(例如抽象语义)上定义合成问题。除了SemGuS框架,我们开发了一种算法,用于解决SemGuS问题,能够合成程序和证明不可实现性,通过编码SemGuS问题作为一个证明搜索约束角子句:特别是,我们的方法是第一个,我们知道,可以证明不可实现性的合成问题,涉及的强制性程序与无界循环,在一个无限的语法搜索空间。我们在一个名为MESSY的工具中实现了该技术,并将其应用于两个SyGuS问题(即,在表达式上)和在命令式程序设计语言上的合成问题。
2020-11-11 cs.PL
Automated Lemma Synthesis in Symbolic-Heap Separation Logic
分离逻辑的符号堆片段已被积极开发和提倡用于验证计算机程序的存储器安全性质。目前,其最大的挑战之一是有效地证明包含归纳堆谓词的蕴涵。这些蕴涵通常是在验证操作复杂数据结构(如链表、树或图)的程序时生成的证明义务。为了帮助证明这样的蕴涵,本文介绍了一个引理合成框架,自动发现引理,作为尤里卡步骤的证明。数学归纳法和基于模板的约束求解是我们框架的两大支柱。为了导出给定蕴涵的支持引理,框架首先从蕴涵的堆结构中识别可能的引理模板。然后,它建立每个模板的变量之间的未知关系,并进行结构归纳证明,以产生这些关系的约束。最后求解约束条件,找出未知关系的实际定义,从而发现引理。我们已经将这个框架集成到一个原型证明器中,并在各种蕴涵基准上进行了实验。实验结果表明,我们的引理合成辅助证明器可以证明许多蕴涵,不能处理现有的技术。这个新提议为自动推理复杂的归纳堆谓词提供了更多的机会。
2017-11-08 cs.LO cs.PL
Program Synthesis by Type-Guided Abstraction Refinement
我们考虑的问题,类型导向组件的合成,给定一组(类型化)组件和查询类型,目标是合成一个长期居住的查询。基于直觉逻辑中的证明搜索的经典方法不能扩展到现代语言的标准库,后者跨越数百或数千个组件。最近为Java等语言提出的基于图可达性的方法确实可以扩展,但仅适用于单态数据和函数的组件:多态数据和函数无限地扩展了必须搜索的图的大小,使得合成变得难以处理。我们介绍了类型引导抽象细化(TYGAR),一种新的方法,可扩展的类型导向合成多态数据库和组件。我们的关键见解是,我们可以通过在抽象类型上构建一个图来克服爆炸,该抽象类型表示一组潜在的无界具体类型。我们展示了如何使用图的可达性来搜索抽象类型上的候选项,并介绍了一种新的算法,该算法使用病态类型候选项的不可类型性证明来迭代地细化抽象,直到找到一个良好类型的结果。我们已经在H+中实现了TYGAR,H+是一个以一组Haskell库和一个查询类型作为输入的工具,并返回一个Haskell术语,该术语使用所提供的库中的函数来实现查询类型。我们使用一组流行的Haskell库(共有291个组件)对一组44个查询进行了H+评估。我们的研究结果表明,H+返回一个有趣的解决方案的前五个结果中的33个44查询。此外,TYGAR允许H+快速返回类型良好的术语,第一个解决方案的平均时间仅为1.4秒。
2019-11-11 cs.PL
The Search for Constrained Random Generators
University at Buffalo, SUNY(纽约州立大学布法罗分校);Technion(以色列理工学院);University of Pennsylvania(宾夕法尼亚大学);University of Maryland(马里兰大学)
本文提出利用演绎程序合成思想,通过生成器的指称语义设计出自动合成正确生成器的规则,解决属性驱动测试中的受限随机生成问题,提升测试用例的有效性。
2026-04-14 cs.PL
Type-Directed Synthesis of Products
软件综合-从规范生成完整的通用程序的过程-在过去几年中已成为一个热门的研究课题。几十年来,这个问题一直被认为是无法克服的:可能程序的搜索空间太大,无法有效地遍历。有效的约束求解的进步已经克服了这一障碍,使新一代的有效的合成系统。大多数现有系统将合成任务编译到低级SMT实例,牺牲高级语义信息,同时仅解决一阶问题(即,填充整数孔)。最近的工作采取了另一种方法,使用Curry-Howard同构和自动定理证明的技术来构造高阶程序与代数数据集。我的论文涉及扩展这种类型导向的合成引擎来处理产品类型,这需要对基础理论和工具本身进行重大修改。产品类型简化了其他语言功能,消除了原始合成系统中使用的其他变通方法中的变量构造器。作为逻辑合取的一种形式,乘积是可逆的,这使得合成系统可以配备一种高效的定理证明技术,称为聚焦,消除了证明搜索中固有的许多不确定性选择。这些理论上的改进为新版本的类型定向合成原型实现提供了信息,该原型实现与原始合成器相比仍然具有性能竞争力。类型导向的合成框架的一个显着优势是它的可扩展性,这篇论文是未来的努力,以提高系统的表达能力的路线图。
2015-10-27 cs.PL
Connecting Program Synthesis and Reachability: Automatic Program Repair using Test-Input Generation
证明了程序合成和可达性的某些公式是等价的。具体来说,我们的建设性证明显示基于模板的合成问题,它生成一个程序在一个预先指定的形式,和可达性问题,这决定了可达性的程序位置之间的减少。这在两个研究领域之间建立了联系,并允许在它们之间转移技术和成果。为了证明等价性,我们使用可达性工具开发了一个程序修复原型。我们将一个有缺陷的程序和它所需的规格到一个特定的程序,包含一个位置可达只有当原始程序可以修复,然后应用现成的测试输入生成工具上的转换程序,找到测试值,以达到所需的位置。这些测试值对应于原始程序的修复。初步结果表明,我们的方法与其他修复方法相比是有利的。
2019-03-28 cs.PL
QEDCartographer: Automating Formal Verification Using Reward-Free Reinforcement Learning
QEDCartographer结合监督与强化学习,利用证明分支结构实现无奖励搜索,在CoqGym基准上自动证明21.4%的定理,优于现有工具,证明强化学习可有效提升证明合成搜索机制。
2024-12-17 cs.LG cs.PL cs.SE
Secure Synthesis of Distributed Cryptographic Applications (Technical Report)
本文提出一种编译器安全性证明,通过统一基于模拟的安全性、信息流控制等技术,解决分布式密码学应用综合中多种密码机制、恶意破坏和异步通信等复杂问题,并证明其能保证稳健超性质保持。
2024-01-06 cs.CR cs.PL
MUSTARD: Mastering Uniform Synthesis of Theorem and Proof Data
City University of Hong Kong(香港城市大学);Shenzhen Campus of Sun Yat-sen University(中山大学深圳校区);Huawei Noah’s Ark Lab(华为诺亚方舟实验室);DarkMatter AI Research(DarkMatter人工智能研究院);MBZUAI(穆罕默德·本·扎耶德人工智能大学);CityUSRI(香港城市大学深圳研究院)
MUSTARD框架通过三阶段流程合成高质量定理与证明数据,构建含5,866个有效数据点的MUSTARDSAUCE基准,微调Llama 2-7B在定理证明和数学应用题上分别提升15.41%和8.18%。
2024-05-23 cs.AI cs.CL cs.FL
Proving uniformity and independence by self-composition and coupling
耦合证明是一种经典的证明技术,用于建立两个概率过程的概率性质,如随机优势和马尔可夫链的快速混合。最近,耦合已被调查作为一个有用的抽象形式化推理的概率程序的关系属性,特别是建模约简为基础的密码学证明和验证差分隐私。在本文中,我们证明了概率耦合可以用于验证非关系的概率属性。具体来说,我们表明,程序逻辑pRHL-其证明是正式版本的耦合证明-可用于形式化的一致性和概率独立性。我们使用EasyCrypt证明助手正式验证我们的主要示例。
2017-04-01 cs.LO cs.PL
Combining Logic Programs and Monadic Second Order Logics by Program Transformation
本文提出了一种基于展开/折叠变换规则的程序合成方法,该方法可用于从一个后继者的弱一元二阶理论(WS 1 S)的公式导出可终止的确定性逻辑程序。这种综合方法也可作为WS_(1 S)封闭公式的判定过程的证明方法。我们应用我们的综合方法翻译CLP(WS 1 S)程序到逻辑程序,我们也使用它作为一种证明方法来验证无限状态系统的安全性。
2003-11-27 cs.LO cs.PL
Probabilistic Couplings for Probabilistic Reasoning
本文从形式化验证的角度探讨了耦合证明问题。这些证明在概率论和理论计算机科学中长期使用,它们构造了两个概率过程的输出分布之间的耦合。耦合可以意味着比较两次概率计算的各种保证。我们首先证明了在程序逻辑pRHL描述耦合。我们正式建立各种概率特性,包括分布等价,收敛和随机支配的耦合。然后,我们给出了一个证明作为程序的解释:耦合证明编码的概率产品程序,其性质暗示的关系性质的原始程序。我们设计的逻辑xpRHL构建的产品,扩展模型转移耦合和路径耦合。然后,我们提出了一个近似版本的概率耦合和相应的证明技术-证明近似耦合-的启发逻辑apRHL,一个版本的pRHL建设近似提升。借鉴现有的隐私证明的想法,我们扩展apRHL与新的证明规则,以构建新的近似耦合。我们给出了一个近似的耦合证明的隐私稀疏向量机制,一个著名的算法,从隐私文献的隐私证明是出了名的微妙,并产生第一个正式证明的隐私稀疏向量在apRHL。最后,我们提出了几个更复杂的近似耦合的建设:一个原则,显示精度依赖的隐私,一个推广的高级组合定理,和一个最佳的近似耦合两个子集。我们还表明我们的近似耦合和其他现有的定义之间的等价性。这些成分支持Between Thumbnails机制的第一个正式的隐私证明。
2017-11-01 cs.DS cs.LO cs.PL
Unrealizability Logic
本文提出不可实现性逻辑,一种霍尔式推理系统,用于证明程序综合问题不可实现性,首次实现无限命令式程序集合的过度逼近,并提炼先前工具中的核心概念。
2025-03-01 cs.LO cs.PL
Coupling proofs are probabilistic product programs
耦合是一个强有力的数学工具,用于推理概率过程对。形式化验证的最新发展确定了耦合和pRHL之间的密切联系,pRHL是一种关系程序逻辑,由可证明安全性的应用程序驱动,使耦合从概率论文献中正式构建。然而,现有的工作,使用pRHL只显示存在的耦合,并没有给出一种方法来证明定量的属性的耦合,这是需要的原因混合和收敛的概率过程。此外,pRHL本质上是不完整的,并且不能捕获一些高级形式的耦合,例如移位耦合。我们对这两个问题的处理如下。首先,我们定义了一个扩展的pRHL,称为xpRHL,它明确地构建了耦合在一个pRHL衍生的形式的概率产品程序,模拟两个相关的运行的原始程序。现有的概率程序验证工具,然后可以直接应用到概率产品,以证明耦合的定量属性。其次,我们配备了一个新的规则,而循环,推理可以自由地混合同步和非同步循环迭代pRHL。我们的证明规则可以捕获移位耦合的例子,并且对于确定性程序,逻辑相对完整。我们显示的xpRHL的合理性,并用它来分析两类例子。首先,我们验证快速混合使用不同的工具从耦合:标准耦合,移位耦合,路径耦合,组合的原则,结合本地耦合到一个全球性的耦合。其次,我们验证(近似)之间的等价性源和优化程序的几个实例循环优化从文献。
2016-11-07 cs.LO cs.PL
Resource-Guided Program Synthesis
本文介绍了资源引导合成,一种用于合成既满足功能规范又满足符号资源约束的递归程序的技术。该技术是类型导向的,并依赖于一个新的类型系统,结合多态细化类型与自动摊销资源分析的潜在注释。类型系统支持有效的基于约束的类型检查,并可以表达精确的基于细化的资源边界。类型可靠性证明表明,合成程序是正确的。通过紧密集成程序探索和类型检查,合成器可以利用用户提供的资源绑定来指导搜索,急切地拒绝消耗太多资源的不完整程序。在资源引导合成器ReSyn的实现是用来评估递归数据结构操作的范围内的技术。实验表明,ReSyn合成的程序比由资源不可知的合成器生成的程序更有效。此外,使用ReSyn的合成比合成和资源分析的简单组合更快。ReSyn还能够生成对于固定输入大小具有恒定资源消耗的实现,这可用于减轻侧信道攻击。
2019-04-18 cs.LO cs.PL
Program Synthesis is $Σ_3^0$-Complete
本文证明程序合成在算术层级中是 $Σ_3^0$-完备的,通过构造性编码为一阶公式并归约COF问题,首次给出其一般一阶刻画,并分析变体难度。
2024-05-27 cs.CC cs.LO cs.PL