A Higher-Order Abstract Syntax Approach to the Verified Compilation of Functional Programs
我们认为,功能性程序设计语言的编译器的实现和验证大大简化了采用高阶表示的语法称为高阶抽象语法或HOAS。HOAS的基本思想是使用一种元语言,它为绑定相关概念提供内置的逻辑处理。通过将元语言嵌入到更大的编程或推理框架中,可以将对象语言中的绑定结构的处理吸收到系统的元理论中,从而大大简化整体实现和推理过程。我们在这篇论文中提出并证明了上述论点的有效性的方法来验证执行的编译器转换的函数程序,利用HOAS。在这种方法中,函数程序的转换首先以基于规则的关系规范的形式表达。这些规范被渲染成语言lambda Prolog的程序。一方面,这些程序直接作为实现。另一方面,它们可以用作Abella系统的输入,该系统允许我们证明关于它们的属性,从而证明关于实现的属性。lambda Prolog和Abella都支持使用HOAS方法。因此,它们构成了一个框架,可用于在验证编译中测试HOAS方法的好处。我们用它们来实现和验证一个编译器的代表性的功能程序设计语言,体现了许多编译器的核心,这些语言的转换。在这两个编程和推理阶段,我们展示了如何使用的HOAS方法显着简化了绑定结构的表示,操作,分析和推理。
2017-02-11 cs.LO cs.PL
Generalized Strong Preservation by Abstract Interpretation
标准的抽象模型检验依赖于抽象Kripke结构,该结构通过将不可区分的状态粘合在一起来近似具体模型,即通过具体状态空间的划分。规约语言L的强保持性描述了L中公式的具体和抽象模型检验的等价性。我们展示了如何抽象的解释可以用来设计抽象模型,更一般的抽象Kripke结构。相应地,强保持被推广到基于抽象解释的模型,并与抽象解释中的完整性概念精确相关。最小化精化抽象模型以使其对某种语言L强保持的问题可以表述为抽象解释中的最小域精化以获得w.r.t. L的逻辑/时态运算符。结果表明,这个精炼的强保持抽象模型总是存在的,并且可以被刻画为一个最大不动点。因此,一些著名的行为等价,如互模拟,模拟和口吃,以及它们相应的分区细化算法可以优雅地在抽象解释为完整性属性和细化。
2006-03-14 cs.LO cs.PL
Correctness Kernels of Abstract Interpretations
在基于抽象解释的静态分析中,近似是由抽象域编码的。它们为设计抽象语义函数提供了系统的指导,这些抽象语义函数近似于分析中的某些具体系统行为。为了近似给定的具体语义功能,抽象域可能包含冗余信息。本文介绍了抽象解释的正确性核的概念,一种简化抽象域的方法,即从它们中删除抽象值,以最大的方式,同时保留完全相同的近似行为的系统分析。我们表明,在抽象的模型检验正确性内核提供了一个由示例指导的抽象状态空间的简化范例,这意味着这种简化保留了示例的虚假性(即,抽象路径)。特别是,我们展示了如何正确的内核可以集成与著名的CEGAR(反例引导的抽象细化)方法。
2013-04-19 cs.LO cs.PL
Injecting Abstract Interpretations into Linear Cost Models
我们提出了一个基于语义的框架,用于分析程序的资源使用的定量行为。我们从一个带有成本的操作语义开始。成本集的双曲面结构允许将定量语义定义为线性算子。然后,我们提出了一个抽象的抽象技术的启发,从抽象的解释,以有效地计算全局成本信息的程序。抽象必须考虑两个不同的顺序概念:成本顺序和状态顺序。我们表明,我们的抽象技术提供了一个正确的近似的具体成本计算。
2010-06-26 cs.LO cs.PL
Abstract Program Slicing: an Abstract Interpretation-based approach to Program Slicing
在本文中,我们正式定义了抽象程序切片的概念,程序切片的一般形式被认为是数据的属性,而不是它们的确切值。这种方法适用于具有数值和引用值的语言,并依赖于程序组件(语句)之间的抽象依赖关系的概念。不同形式的(后向)抽象切片被添加到现有的正式框架中,传统的非抽象形式的切片可以进行比较。扩展的框架使我们能够理解抽象切片是传统切片的推广,因为传统切片(处理语法依赖关系)是由(语义)非抽象形式的切片推广的,这实际上相当于对数据执行身份抽象的抽象形式。声音算法计算抽象的依赖关系和程序片的系统表征,它依赖于程序状态之间的协议的概念。
2016-05-17 cs.LO cs.PL
Abstract Interpretation with Unfoldings
我们提出并评估了一种技术,用于计算路径敏感的并发程序的抽象解释过程中的干扰条件。代替不动点计算,我们使用素事件结构来compensate表示因果关系的依赖性和干扰之间的序列的变压器。我们的主要贡献是一个展开算法,使用一个新的概念的独立性,以避免冗余的Transformer应用程序,线程本地固定点,以减少展开的大小,和一个新的截断标准的基础上包容,以保证终止的分析。我们的实验表明,抽象展开产生一个数量级的假警报比一个成熟的抽象解释器,而几个数量级的速度比求解器为基础的工具,具有相同的精度。
2017-05-01 cs.LO cs.PL
Relating Nominal and Higher-order Abstract Syntax Specifications
名义抽象语法和高阶抽象语法提供了比传统技术更高层次的描述绑定结构的手段。这些方法产生了两个不同的社区,它们沿着类似的路线发展,但有微妙的差异,使它们难以联系起来。名义抽象语法社区有名称、新鲜度、带有变量捕获的名称抽象和新量词等设备,而高阶抽象语法社区则有类似于nabda-binders、nabda-conversion、raising和nabla-quantifier的设备。本文旨在统一这些社区,并提供了一个具体的对应关系,他们不同的设备。特别是,我们开发了一个语义保持的翻译从阿尔法Prolog,名义上的抽象语法为基础的逻辑程序设计语言,G-,高阶抽象语法为基础的逻辑程序设计语言。我们还讨论了高阶判断,这是一种用于具有高阶抽象语法的规范的常见且强大的工具,并且我们展示了如何将这些纳入G-中。这建立了G-作为一种具有高阶抽象语法的能力,名义规范的细粒度变量控制以及高阶判断的理想属性的语言。
2010-05-14 cs.LO
Combining Forward and Backward Abstract Interpretation of Horn Clauses
前向分析和后向分析的交替是程序抽象解释中的一种标准技术,当我们希望证明某些不需要的程序状态不可达时,这种技术特别有用。当前用于组合Horn子句的前向(在逻辑编程术语中为自底向上)和后向(自顶向下)抽象解释的最先进技术是查询-应答转换。它转换了Horn子句系统,使得标准的前向分析可以从目标向前和向后传播约束。问答转换是有效的,但有我们希望解决的问题。为此,我们引入了一个新的后向收集语义,它适用于交替的前向和后向抽象解释的Horn子句。我们展示了如何交替可以用来证明无法达到的目标,以及如何每一个后续运行的分析产生一个完善的系统模型。实验上,我们观察到,结合向前和向后的分析是很重要的分析系统编码的问题,在C程序的可达性。特别是,遵循我们的新语义的组合提高了我们自己的抽象解释器的精度,包括与查询-答案转换系统的前向分析相比。
2017-08-07 cs.LO cs.PL
Pretty-big-step-semantics-based Certified Abstract Interpretation (Preliminary version)
我们提出了一种技术,用于从自然语义规范的程序设计语言的语义程序分析。该技术基于一种特殊的语义,称为pretty-big-step语义。我们提出了一个漂亮的大步骤语义的语言与简单的对象称为O 'While,并指定了一系列的仪表的语义,明确了流程的值在程序中。这导致了基于语义的依赖性分析,在核心,例如,污染分析在软件安全中的应用用Coq证明助手实现了形式化。
2013-09-20 cs.LO cs.PL
Elusive but Coverable: The Recursion-Theoretic Structure of Complete Abstract Interpretations
University of Arizona(亚利桑那大学)
从递归理论角度研究抽象解释的局部完备性与不完备性,刻画静态和动态程序分析区别,证明诱导局部完备谓词变换器的程序类难以捉摸但有可判定覆盖,可通过程序转换构造有效枚举。
2026-07-13 cs.LO cs.PL
OntoScene, A Logic-based Scene Interpreter: Implementation and Application in the Rock Art Domain
University of Milano Bicocca(米兰比可卡大学);University of Genova(热那亚大学)
我们提出OntoScene,一个框架,旨在理解语义的视觉场景从语义的元素和它们之间的空间关系举行。OntoScene利用本体来表示知识,利用Prolog来指定领域专家可能采用的解释规则,并实现SceneInterpreter引擎。本体论允许设计者以可重用的方式形式化域,并使系统模块化,并与现有的多智能体系统互操作,而Prolog提供了一个坚实的基础,以定义复杂的解释规则的方式,可以负担得起的,即使是没有计算逻辑背景的人。选择进行OntoScene实验的领域是史前岩石艺术,它为我们提供了一个迷人而具有挑战性的试验平台。逻辑程序设计理论与实践(Theory and Practice of Logic Programming,TPLP)
2019-11-05 cs.AI cs.CV cs.LO
Refining Trace Abstraction using Abstract Interpretation
众所周知,当抽象精化过程没有导出循环不变量时,软件模型检验中的CEGAR循环就会发散。基于SMT求解器的抽象细化过程被应用于迹线,即,程序的一种限制形式(没有循环)。在本文中,我们提出了一个新的抽象细化过程,旨在尽可能地规避这种限制。我们将抽象解释应用于我们从给定的跟踪中导出的程序。如果程序包含一个循环,我们保证得到一个循环不变量。我们只在抽象解释返回不确定答案的情况下调用SMT求解器。也就是说,这个想法是使用抽象解释和SMT求解器串联。在痕迹提取设置的实验评估表明,这一想法的实际潜力。
2017-02-08 cs.LO
Multivariant Assertion-based Guidance in Abstract Interpretation
在程序分析中,近似是一种必要的恶,因为它们确保了基本的属性,例如分析的可靠性和终止性,但它们也意味着不总是产生有用的结果。已经研究了自动技术以防止精度损失,通常以较大的资源消耗为代价。在这两种情况下(即,当分析产生不准确的结果时,以及当资源消耗太高时),有必要为用户提供某种手段来提供信息以指导分析,从而提高精度和/或性能。我们提出了一个抽象的解释框架内支持一组丰富的断言,可以处理多变量/上下文敏感性,并可以处理不同的运行时语义的断言,不能在编译时放电的技术。我们将展示如何将所提出的方法应用于提高精度和加速分析。我们还提供了一些正式的结果,这样的断言上的分析结果的影响。
2018-12-17 cs.LO cs.PL
Semantics, Abstract Interpretation, and Reasoning about Programs: Essays Dedicated to David A. Schmidt on the Occasion of his Sixtieth Birthday
这本书是一本散文集,从个人回忆到技术贡献。这是对戴夫·施密特和他的职业生涯的致敬,并在他六十岁生日之际创作。
2013-09-18 cs.LO cs.PL cs.SE
An Experiment Combining Specialization with Abstract Interpretation
以前的研究表明,控制流细化可以通过一个程序专门化结合基于属性的抽象来实现,以提高终止和复杂性分析工具。我们现在表明,这个专门构建的专门化程序可以以更模块化的方式进行重构,并且可以使用现成的部分评估工具来实现先前的结果,并将其应用于抽象解释器。抽象解释器的关键特征是抽象域,它是基于属性的抽象域与具体域的乘积。这种独立于语言的框架提供了一种实用的方法来实现各种强大的专门化,并有助于使用解释器和专门化来实现程序转换的研究。
2020-08-07 cs.LO cs.PL cs.SC
An Approach to the Abstract Interpretation of Goal-Directed Answer Set Programming
IMDEA Software Institute(IMDEA软件研究所);University of Texas at Dallas(德克萨斯大学达拉斯分校);Spanish Council for Scientific Research (CSIC)(西班牙国家科学研究委员会)
该研究针对目标导向答案集编程,提出基于PLAI不动点的自顶向下算法及共享约束抽象域,通过三个应用研究其在s(CASP)中的实用性,证明编译时静态分析可改进目标导向ASP程序评估。
2026-07-23 cs.LO
Structural abstract interpretation, A formal study using Coq
解释器是计算程序行为的近似的工具。然后,这些近似值可以用于优化或错误检测。在本文中,我们将展示如何描述一个抽象的解释器使用类型理论为基础的定理证明Coq,使用归纳类型的语法和结构递归编程的抽象解释器的内核。抽象解释器然后可以被证明是正确的关于霍尔逻辑的程序设计语言。
2008-10-20 cs.LO
Quantum entanglement analysis based on abstract interpretation
纠缠是量子态的一种非定域性质,在量子信息论中起着决定性的作用。一些协议,如隐形传态,是基于量子纠缠态。此外,任何不产生纠缠的量子算法都可以在经典计算机上有效地模拟。然而,纠缠的确切作用还没有得到很好的理解。由于纠缠演化的精确分析会导致指数减速,我们考虑基于抽象解释框架的近似分析。本文将一种基于超算子的具体量子语义与一种简单的量子程序设计语言联系起来。纠缠的表示,即抽象域的设计是一个关键问题。选择纠缠作为存储器的分区的表示。一个抽象的语义介绍,并证明了近似的可靠性。
2008-01-28 cs.LO cs.PL quant-ph
Model Checking as Program Verification by Abstract Interpretation (Extended Version)
本文提出将模型检验视为程序验证,引入MOKA语言把时序逻辑公式编码为程序,并结合抽象解释与局部完全抽象动态精化分析精度,从而复用更一般的抽象并避免误报。
2025-06-05 cs.LO
An intensionally fully-abstract sheaf model for $π$ (expanded version)
本文为 $\pi$-演算提出基于简单站点上层的组合模型,该层对应并发无辜策略,并证明其内涵完全抽象于公平测试等价,核心是借助字符串图构造站点。
2017-11-14 cs.LO cs.PL
Verifying Safety-Critical Timing and Memory-Usage Properties of Embedded Software by Abstract Interpretation
基于抽象解释的静态程序分析是确定嵌入式软件特性的有效方法。一个例子是值分析,它确定存储在处理器寄存器中的值。它的结果被用作更高级分析的输入,这些分析最终会产生有关堆栈使用和嵌入式软件时序行为的信息。
2007-10-25 cs.LO
Abstract Interpretation on E-Graphs
Imperial College London(帝国理工学院);Intel Corporation(英特尔公司)
最近的电子图应用程序通常考虑具体的语义表达式,其中的概念等价源于具体的解释表达式。然而,适用于一种解释的等同性可能不适用于另一种解释。这种观察是可以利用的。我们认为抽象解释的应用程序的e-图,并表明,在一个e-图,格满足操作与抽象域有一个自然的解释为e-类,从而提高精度过近似。在这个扩展的摘要中,我们使用区间算术(IA)来说明这一点。
2022-03-17 cs.CL cs.LO
A Survey on Product Operators in Abstract Interpretation
本文的目的是提供一个总体概述的产品运营商在文献中介绍的一种工具,以提高分析的准确性,在抽象解释框架。特别是我们专注于笛卡尔和减少产品,以及减少基数功率,一个未充分使用的技术,其功能值得强调其在实际应用中的潜在影响。
2013-09-20 cs.LO
Responsibility Analysis by Abstract Interpretation
给定程序中感兴趣的行为,静态地确定相应的责任实体是至关重要的任务,特别是在程序安全性方面。经典的静态分析技术(例如依赖性分析、污点分析、切片等)帮助程序员缩小责任范围,但他们都不能明确地确定责任实体。同时,因果关系分析一般不适用于程序的分析,而结构方程模型(SEM)的实际因果关系忽略了程序固有的一些信息,使得其对程序的分析不精确。本文提出了一种新的基于事件跟踪语义抽象的责任定义,该定义可应用于程序安全等科学领域。简单地说,实体ER负责行为B,当且仅当ER可以自由选择其输入值,并且这样的选择是确保B在即将到来的执行中出现的第一个选择。与现有的分析方法相比,责任分析更加精确。此外,我们对责任的定义考虑了观察者的认知,据我们所知,这是程序分析中的一个新的创新思想。
2019-07-18 cs.LO cs.PL
Making Abstract Domains Condensing
在本文中,我们表明,可逆分析的逻辑语言的抽象解释可以进行不损失的精度,系统地细化抽象域。其思想是将语义结构包含到抽象域中,以这种方式,精炼的抽象域变得足够丰富,以允许近似的自底向上和自顶向下语义一致。这些域被称为压缩抽象域。实质上,如果目标驱动和目标独立分析一致,则抽象域是浓缩的,即在目标独立分析中近似查询不会引起精度损失。我们证明了凝聚是一个抽象的域属性,并使一个抽象域凝聚的问题归结为问题,使域完整的统一。在一般的抽象解释设置,我们表明,当具体的域和操作引起quantales,即模型的命题线性逻辑,对象在一个完整的精炼抽象域可以明确的特征在于线性逻辑为基础的配方。这是用于逻辑程序分析的抽象域的情况,近似计算的答案替换,其中统一在幂等替换的Quantale中扮演乘法合取的角色。因此,凝聚抽象域可以通过最小限度地扩展任何,通常非凝聚域,由一个简单的域细化算子系统地得出。
2002-04-09 cs.LO cs.PL
On the Monniaux Problem in Abstract Interpretation
抽象解释中的Monniaux问题,粗略地说,询问以下问题是否是可判定的:给定程序$P$,安全(\emph{e.g.},不可达性)规范$φ$,和不变量$\mathcal{D}$的抽象域,在$\mathcal{D}$中是否存在归纳不变$I$,保证程序$P$满足其规范$φ$。当然,Monniaux问题是由程序的类别和人们所考虑的不变域参数化的。在本文中,我们证明了Monniaux问题是不可判定的无保护仿射规划和半线性不变量(联盟多面体)。此外,我们发现,可判定性恢复的重要特殊情况下,简单的线性循环。
2019-07-18 cs.LO
Calculational Design of [In]Correctness Transformational Program Logics by Abstract Interpretation
研究正确性与错误性变换程序逻辑,扩展以处理终止与非终止,证明其为自然关系语义的抽象解释,提供计算化方法设计可靠完备证明系统,并扩展 Hoare 逻辑及设计新前置条件逻辑。
2023-11-23 cs.LO
A proof-theoretic approach to abstract interpretation
Google Inc.(谷歌公司);Vrije Universiteit Amsterdam(阿姆斯特丹自由大学);University of Johannesburg(约翰内斯堡大学);University of Luxembourg(卢森堡大学);INRIA(法国国家信息与自动化研究所)
本文通过将逻辑系统与有限抽象系统关联,提出了一种生成与抽象格同构的Lindenbaum-Tarski代数的逻辑的通用程序,并建立了相应的可靠性和完备性结果。
2026-05-26 cs.LO math.LO
Context-Sensitive Abstract Interpretation of Dynamic Languages
针对动态语言IDE工具因动态特性导致控制流/数据流识别失效的问题,提出基于抽象解释的静态分析算法,可分析动态元编程与反射,已实现支持JavaScript子集的原型分析器,弥合动静态语言工具差距。
2024-01-31 cs.LO cs.PL cs.SE
A Constructive Framework for Galois Connections
基于抽象解释的静态分析依赖于程序属性的抽象域,例如整数变量的区间或全等。偏序集之间的伽罗瓦连接(GC)为数学上指定抽象域提供了最广泛和最有用的形式化工具。最近,Darais和Van Horn [2016]提出了无序集(而不是偏序集)的构造性伽罗瓦连接的概念,它允许以所谓的机械化和计算证明风格定义抽象域,因此可以使用Coq和Agda等证明助手自动提取静态分析的验证算法。我们在这里表明,建设性的GC是同构的,在一个精确和全面的意义,包括声音的抽象功能,所谓的分区GC-一个已知的类的GC,允许铸造标准集分区作为一个抽象域。Darais和Van Horn [2016]还为偏序集提供了构造性GC的概念,我们证明了它与普通GC同构,因此失去了它们的构造性属性。利用这些发现,我们提出并倡导使用纯粹的分区GC,一类新颖的建设性抽象域的机械化方法来抽象的解释。我们表明,这类抽象域使我们能够表示一组分区具有更大的灵活性,同时保留了建设性的方法伽罗瓦连接。
2017-04-28 cs.LO cs.PL
Generalizing the Paige-Tarjan Algorithm by Abstract Interpretation
Paige和Tarjan算法(PT)用于计算状态划分的粗细化,这是一些Kripke结构上的互模拟是众所周知的。在模型检验中,互模拟等价于CTL的强保持,或者等价于Hennessy-Milner逻辑的强保持。根据这些观察,我们分析了PT算法的基本步骤,从抽象解释的角度来看,这使我们能够在通用归纳定义(时态)语言和抽象解释指定的可能非分区抽象模型的背景下进行强保护。这使我们设计了一个广义的Paige-Tarjan算法,称为GPT,用于计算一个抽象的基于解释的模型,强烈保留一些给定的语言的最小细化。证明了在强保持Hennessy-Milner逻辑的情况下,PT是GPT在状态划分域上的直接实例。我们提供了一些例子,说明GPT是通用的。我们首先展示了如何一个众所周知的有效算法计算口吃等价可以被视为一个简单的实例GPT。然后,我们实例化GPT,以设计一个新的高效的算法计算仿真等价,是最好的算法竞争。最后,我们展示了GPT如何允许计算新的强保持抽象模型,通过提供一个有效的算法,计算一个给定的分区,强烈保留的语言生成的可达性运算符的coarthorough细化。
2006-12-27 cs.LO
Abstract interpretation, Hoare logic, and incorrectness logic for quantum programs
抽象解释、霍尔逻辑和不正确(或反向霍尔)逻辑是静态分析计算机程序的强大技术。所有这些都已成功地扩展到量子设置,但在很大程度上是并行开发的。在本文中,我们研究这些技术之间的关系,在验证量子while程序的背景下,其中的抽象域和一组断言的量子状态是结构良好的。特别地,我们证明了任何完全的量子抽象解释都可以导出一个量子霍尔逻辑和一个量子不正确逻辑,这两个逻辑都是合理的和相对完备的。与文献中提出的逻辑不同,诱导逻辑系统是以向前的方式,使它们在某些应用中更有用。相反,任何健全的和相对完整的量子霍尔逻辑或量子不正确逻辑都导出一个完整的量子抽象解释。作为应用,我们证明了当局部子空间元组作为断言时,不存在任何可靠的、相对完备的量子霍尔逻辑或不正确逻辑.
2022-06-28 cs.LO quant-ph
Abstract Interpretation for Probabilistic Termination of Biological Systems
在以前的论文中,作者应用抽象解释方法近似生物系统的概率语义,专门使用化学基型演算建模。该方法是基于代表一组实验的想法,这只是不同的初始浓度,通过抽象的多重性的试剂存在于溶液中,使用间隔。在本文中,我们改进的方法,以解决概率终止属性。更详细地说,我们引入了一个细化的抽象LTS语义,我们抽象的概率语义使用的区间马尔可夫链的变体。抽象的概率模型安全地近似一组具体的实验和报告保守的下限和上限的概率终止。
2009-11-26 cs.CE cs.FL cs.LO
Quantum Set Theory Extending the Standard Probabilistic Interpretation of Quantum Theory (Extended Abstract)
两个观测量相等的概念在量子理论的基础中起着重要的作用。然而,基于传统玻恩公式的标准概率解释并没有给出一对任意观测量的概率相等关系,因为玻恩公式只给出了可交换观测量族的概率分布。本文利用Takeuti和本文作者发展的量子集合论,系统地推广了量子理论的概率解释,定义了一对任意可观测量的相等关系的概率。这种新的解释测量理论的应用进行了简要讨论。
2014-12-30 cs.LO quant-ph
Abstract Interpretation of Temporal Concurrent Constraint Programs
时间并发约束编程(Timed Concurrent Constraint Programming,tcc)是一种声明式的并发模型,提供了一种用于指定反应式系统(reactive systems)的逻辑,即与环境持续交互的系统。通用tcc形式主义(utcc)是tcc的扩展,具有表示移动性的能力。这里,移动性被理解为私有名称的通信,如通常针对移动系统和安全协议所做的。在本文中,我们考虑了tcc的指称语义,并将其扩展为基于约束序列上的闭包运算符的utcc的“收集”语义。依靠这种语义,我们形式化了一个通用框架的数据流分析的tcc和utcc程序的抽象解释技术。我们提出的具体和抽象语义是组合的,从而使我们能够减少数据流分析的复杂性。我们表明,我们的方法是健全的和参数的抽象域。因此,可以通过实例化框架来执行不同的分析。我们说明了如何可以重用抽象域先前定义的逻辑编程执行,例如,接地分析TCC程序。我们展示了这种分析在反应系统的背景下的适用性。此外,我们还利用抽象语义来展示一个安全协议中的秘密缺陷。我们还展示了如何有可能作出分析,这可能表明,tcc程序暂停免费。这对于多种用途都很有用,例如优化编译或调试。
2013-12-09 cs.LO
Calculational Design of Hyperlogics by Abstract Interpretation
本文通过抽象解释原理设计了用于证明迭代程序超性质的通用不动点抽象解释器,推导出下近似与上近似超逻辑,并提出多种代数抽象以简化证明规则,实现了超逻辑的新代数泛化。
2024-11-17 cs.LO
Abstract Interpretation in Formal Argumentation: with a Galois Connection for Abstract Dialectical Frameworks and May-Must Argumentation (First Report)
Nagoya Institute of Technology(名古屋工业大学)
基于标签的形式论证依赖于标签函数,通常分配3个标签之一来指示每个参数的接受,拒绝或未决定。虽然经典的基于标记的方法应用全局统一的条件来标记参数,但它们可以在每个参数上更局部地确定。抽象辩证框架(ADF)是一个著名的论证形式主义,属于这一类,提供了更大的标签灵活性。然而,随着论证的规模在论证和论证对论证关系的数量上的增加,检查标记函数是否满足这些局部条件或者甚至检查这些条件是否符合指定它们的人的意图变得越来越昂贵。因此,在对一个更大的论证进行推理时,需要某种妥协。在这方面,有一个最近提出的形式主义的可能必须论证(MMA),强制执行仍然是本地的,但更抽象的标签条件。我们确定他们如何在这项工作中相互联系。我们证明了它们之间存在伽罗瓦连接,其中ADF是MMA的具体化,MMA是ADF的抽象。我们探讨了抽象解释在正式论证中发挥作用的后果,展示了一个合理的推理,从MMA内ADF的可接受性/可拒绝性的判断。据我们所知,很少有任何工作,将抽象的解释纳入正式的论证在文献中,并在规定的情况下,这项工作是第一个证明其使用和相关性。
2020-07-22 cs.AI cs.LO
Sound up-to techniques and Complete abstract domains
抽象解释是一种自动寻找程序或代码不变量的方法,其语义通过最少不动点给出。上至技术已经被引入作为共归纳的增强,共归纳是一个抽象的原则,用来证明通过最大不动点表示的属性。虽然抽象解释从定义上讲总是合理的,但最新技术的合理性需要一些独创性来证明。为了完整性,设置进行了切换:最新技术总是完整的,而抽象领域则不然。在这项工作中,我们表明,在合理的假设下,有一个明显的连接之间的声音高达技术和完整的抽象域。
2018-05-02 cs.LO
Parf: Adaptive Parameter Refining for Abstract Interpretation
针对抽象解释静态分析器参数依赖专家调优的问题,本文提出全自动框架 Parf,通过格状空间上的概率分布增量精化参数,并在 Frama-C/Eva 与 OSCS 基准上显著降低误报。
2024-09-09 cs.LO
A Control Flow based Static Analysis of GRAFCET using Abstract Interpretation
针对GRAFCET并发行为易导致状态空间过大的问题,提出基于抽象解释的控制流静态分析方法,可检查无并发实例并开展流敏感分析,经工业级示例验证有效。
2023-08-25 cs.LO cs.PL cs.SY
An efficient simulation algorithm based on abstract interpretation
计算模拟前序的算法有很多。Sigma表示状态空间,->表示转移关系,Psim表示由模拟等价引起的Sigma的划分。Henzinger、Henzinger、Kopke和Bloom和Paige的算法都是O(|Sigma||->|)-时间,并且就时间复杂度而言,它们是最好的可用算法。然而,这些算法具有空间复杂度的缺点,该空间复杂度在状态空间的大小上大于二次方。Gentilini,Piazza,Policriti的算法--后来由van Glabbeek和Ploeger修正--似乎提供了时间和空间复杂度之间的最佳折衷。Gentilini等人的算法运行时间为O(|Psim| ^2|->|)-time,而空间复杂度为O(|Psim| ^2 + |Sigma| log |Psim|)。我们在这里提出了一个新的高效的仿真算法,获得作为修改Henzinger等人。的算法,其正确性基于抽象解释在模型检验中的应用中所使用的一些技术。算法的时间复杂度为O(|Psim||->|)-时间和O(|Psim| |Sigma| log |Sigma|)-空间。因此,该算法改进了已知的最佳时间界限,同时保持了可接受的空间复杂度,该空间复杂度通常小于状态空间大小的二次方。实验评价表明,良好的比较结果与Henzinger,Henzinger和Kopke的算法。
2008-12-05 cs.LO
Convex polyhedral abstractions, specialisation and property-based predicate splitting in Horn clause verification
我们提出了一种方法来约束霍恩子句(CHC)验证相结合的三种技术:抽象的解释在一个域的凸多面体,专门化的约束条件在CHC使用抽象解释的查询答案转换的条款,和细化分裂谓词。的工作的目的是调查如何分析和转换工具开发的约束逻辑程序(CLP)可以适用于霍恩子句验证问题。凸多面体的抽象解释能够推导出复杂的不变量,当与传播约束的专业化结合使用时,它可以经常解决具有挑战性的验证问题。这本身就是一个贡献,但是当它失败时需要精化,并且如何精化凸多面体分析的问题还没有被研究很多。我们提出了一种改进技术的基础上插值来自一个反例跟踪,这些都是用来驱动基于属性的专业化,分裂谓词,进而导致更精确的凸多面体分析。专业化,分析和分裂的过程可以重复,以类似于CEGAR和迭代专业化方法的方式。
2014-12-03 cs.LO
Ascertaining Uncertainty for Efficient Exact Cache Analysis
静态缓存分析通过以合理但近似的方式确定哪些内存访问导致缓存命中以及哪些导致缓存未命中来表征程序的缓存行为。这些信息在优化编译器、最坏情况下的执行时间分析以及侧信道攻击量化和缓解方面都是有价值的。高速缓存分析通常作为“必须”和“可能”抽象解释的组合来执行,将指令分类为“总是命中”、“总是未命中”或“未知”。分类为“未知”的指令可能会导致命中或未命中,这取决于程序输入或初始高速缓存状态。同样可能的是,它们实际上总是命中或总是未命中,但是高速缓存分析太粗糙而看不到它。我们消除这种不确定性的方法包括(i)一种新颖的抽象解释,能够确定特定指令肯定会在不同路径上导致命中和未命中,以及(ii)一种精确的分析,基于模型检验,消除所有剩余的不确定性,使用抽象解释结果来修剪模型的可扩展性。我们在各种示例上评估了我们的方法;它以合理的成本显着提高了经典抽象解释的精度。
2018-12-20 cs.AR cs.LO cs.PL
A fully-abstract semantics of lambda-mu in the pi-calculus
我们研究了Muda-mu演算,扩展与明确的替代,并定义了一个组合输出为基础的解释到一个变种的π演算与配对,保留单步显式头减少弱双相似性。我们定义了四个概念的弱等价的Euda-mu-一个基于弱约化,两个建模弱头约化和弱显头约化(所有考虑没有弱头范式等价项),和一个基于弱近似-并显示它们都是一致的。然后,我们将展示完整的抽象结果,我们的解释弱等价弱双相似的过程。
2014-09-11 cs.LO
Interpolant Tree Automata and their Application in Horn Clause Verification
本文研究了凸多面体域上的抽象解释与插值树自动机相结合的Horn子句验证的抽象-精化方案。这些技术以前已经单独应用,但在本文中以一种新的方式相结合。内插树自动机的作用是在精化过程中提供一个伪反例的概括,捕获一组可能无限的伪反例迹。在我们的方法中,这些痕迹,然后消除使用的Horn子句的变换。我们比较这种方法与其他两种方法,其中之一使用插值树自动机的算法跟踪抽象和细化,而另一个使用抽象的解释没有概括步骤的凸多面体的域。一些霍恩子句验证问题的实验结果的评价表明,插值树自动机与抽象解释的组合给出了一些增加的验证工具的力量,而有时会产生的性能开销。
2016-07-10 cs.LO
Categorical Vector Space Semantics for Lambek Calculus with a Relevant Modality (Extended Abstract)
我们开发了一个有相关模态的Lambek演算的分类成分分布语义,它具有有限版本的压缩和排列规则。语义学的范畴部分是一个monoidal双闭范畴,其上有一个定义在微分范畴上的余代数模态。我们实例化这一类有限维向量空间和线性映射,通过量化函子和工作与三个具体的解释的余代数模态。我们应用该模型来构建分类和具体的语义解释的动机的例子,这个扩展演算:派生的短语与寄生的差距。具体解释的有效性通过消歧任务进行评估,在将句子消歧数据集扩展到寄生间隙短语上,使用BERT,Word2Vec和FastText向量和关系张量
2021-01-26 cs.LO
Proofs as stateful programs: A first-order logic with abstract Hoare triples, and an interpretation into an imperative language
本文提出一种扩展一阶逻辑,以 Hoare 三元组风格对抽象状态进行推理,并通过可实现性解释将证明提取为混合函数式/命令式程序,同时给出基于状态单子的语义解释及 Heyting 算术单子扩展。
2024-01-25 cs.LO math.LO
Invariant stream generators using automatic abstract transformers based on a decidable logic
在模型或源代码上使用形式化分析工具通常需要关于所研究系统的辅助不变量的可用性。抽象解释是目前发现有用的不变量,特别是数值不变量的最佳方法之一。然而,它的应用受到两个正交问题的限制:(i)开发抽象解释通常是不平凡的;系统的每个传递函数必须在抽象级别上表示,这取决于所使用的抽象域;(ii)对于精确但昂贵的抽象域,由抽象解释器计算的信息只能在到达后定点时使用;这对于非常大的系统分析可能需要很长时间,或者延迟加宽以提高精度。本文提出了一种新的,完全自动的,方法来建立抽象解释器。它的一个很好的特点是,它产生的解释器可以提供声音的不变量的分析系统到达后固定点计算结束之前,所以作为在飞行不变的发电机。
2012-05-16 cs.LO cs.SE