Deriving Program Logics from Distributive Monoidal Categories
Università di Pisa(比萨大学);Tallinn University of Technology(塔尔图理工大学);University of Oxford(牛津大学)
该研究从命令式范畴的公理推导多种程序逻辑,其规则遵循该范畴公理,且推导的防护命令代数推广了带测试的防护Kleene代数。
2026-09-04 cs.LO
The Alma Project, or How First-Order Logic Can Help Us in Imperative Programming
Alma项目的目标是设计一种强类型约束程序设计语言,它结合了逻辑和命令式编程的优点。该项目的第一阶段是设计和实现Alma-0,这是一种小型程序设计语言,为命令式编程框架内的声明式编程提供支持。它是通过扩展Modula-2的一个子集,由逻辑编程范式启发的少量功能获得的。在本文中,我们将讨论的基本原理设计的Alma-0,由此产生的混合编程框架的好处,以及目前的工作中添加约束处理能力的语言。特别是,我们讨论的逻辑和习惯变量的作用,约束存储和程序之间的相互作用,以及需要列表。
1999-07-19 cs.LO cs.PL
From Matching Logic To Parallel Imperative Language Verification
程序验证是开发程序的证明系统,并证明证明系统相对于程序的可信操作语义的可靠性。然而,许多实用的程序验证器不是基于操作语义的,不能认真验证程序。提出了基于匹配逻辑的操作语义程序验证方法。本文在Grigore Ro{n}u的工作基础上,研究了并行命令式语言(PIMP)的匹配逻辑。根据我们的调查,本文是第一次研究的匹配逻辑的PIMP。在匹配逻辑中,我们将“无干扰”定义为字符并行规则,并证明了匹配逻辑对PIMP的操作语义的正确性。通过构造一个对配置模式执行符号化的逻辑语义重写的PIMP匹配逻辑验证器,将PIMP的操作语义和PIMP的验证形式化地联系起来,该验证器对PIMP的匹配逻辑是完善的。也就是说,我们的PIMP匹配逻辑验证器符合PIMP的操作语义。最后,通过一个并行程序设计中的标准问题,对匹配逻辑验证器进行了验证。
2021-02-08 cs.FL cs.LO
Imperative Program Synthesis from Answer Set Programs
我们的研究关注的是从答案集编程规范生成命令式程序。ASP是高度声明性的,是编写规范的理想选择。此外,利用否定即失败,很容易简洁地表示组合搜索问题。我们目前正致力于从ASP程序中合成命令式程序,将否定转换为有用的计算。这开辟了一种新的方式来合成程序的可执行规范。
2019-09-19 cs.LO cs.SC
A Type System Theory for Higher-Order Intensional Logic Support for Variable Bindings in Hybrid Intensional-Imperative Programs in GIPSY
我们描述了一个类型系统的平台称为一般内涵编程系统(GIPSY),旨在支持内涵程序设计语言的内涵逻辑和他们的强制性对应部分的内涵执行模型。在GIPSY中,类型系统在其编译器和运行时环境中粘合了内涵和命令式语言之间的静态和动态类型,以支持以内涵程序设计语言Lucid的各种方言编写的表达式的内涵求值。内涵使表达式明确考虑到多维的评估上下文,上下文是一个一流的值,服务于许多需要上下文概念来进行的应用程序。我们描述和讨论这样一个类型系统的属性和相关的类型论,以及GIPSY类型系统的语义,设计和实现的特殊性。
2009-06-22 cs.LO cs.PL
A polytime complexity analyser for Probabilistic Polynomial Time over imperative stack programs
我们提出了iSAPP(概率多项式时间的强制静态分析器),一个复杂性验证工具,是健全的和扩展完整的概率多项式时间(PP)的复杂性类。iSAPP工作在用于堆栈机器的命令式程序设计语言上。多项式的证书可以根据所使用的堆栈的数量在多时间中构建。
2013-04-11 cs.CC cs.LO
Logical Pseudocode: Connecting Algorithms with Proofs
证明(微积分,自然演绎)和命令式算法(伪码)是两个众所周知的共存概念。那他们是什么关系?我们的答案是,\[ imperative\ algorithms\ =\ proofs\ with\ cuts \]这一观察导致一个推广的伪码,我们称之为{ \it逻辑伪码}。它类似于可计算性逻辑\cite{Jap03,Jap08}的自然演绎证明。其中的每一个陈述都对应于自然演绎中的一个证明步骤。因此,相对于伪代码,它的优点是保证每个语句相对于初始规范是正确和安全的。它也可以被看作是可计算性逻辑网(\colw)的扩展,具有正向推理能力。
2022-02-14 cs.LO
LoopW Technical Reference v0.3
本文档描述了LoopW语言的SML实现,LoopW语言是一种命令式语言,具有高阶过程变量和非局部跳转,并配备了程序逻辑。它包括用户手册以及一些实现说明和许多经过认证的命令式程序的示例。作为一个总结的例子,我们展示了一个命令式程序编码移位/复位使用callcc/抛出和一个全局元延续的认证。
2010-01-02 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
Verifying Relational Properties using Trace Logic
我们提出了一个逻辑框架,在命令式程序中的关系属性的验证。我们的工作是出于安全应用程序的关系属性,往往需要推理公式与量词交替。我们的框架减少了验证的关系属性的命令式程序的有效性问题到跟踪逻辑,一阶谓词逻辑的表达实例。跟踪逻辑从它的语法中提取它的表达能力,这允许在计算跟踪上表达属性。它的公理化支持程序执行中中间步骤的细粒度推理,特别是循环迭代。我们提出了一个算法来编码的语义程序,以及它们的关系属性的跟踪逻辑,然后显示如何一阶定理证明可以用来推理所产生的跟踪逻辑公式。我们的工作是在快速工具中实现的,并与来自安全领域的例子进行评估。
2019-08-12 cs.LO
A Framework for Concurrent Imperative Programming
该框架提供了一个通用的并发命令式编程模型。程序被建模为形式语言,并发性被建模为交织(或混洗)运算符。这产生了一个简单而优雅的程序代数。该框架支持Dinsdale-Young等人的视图程序逻辑,它概括了各种类型系统和程序正确性的分离逻辑方法。它还验证了熟悉的操作演算在小步和大步的味道。程序逻辑相对于操作规则的一致性是直接建立的,并且不使用推导上的归纳。事实上,整个框架只使用简单的数学。参数化的状态,视图和基本命令,它可以实例化为各种具体的语言和设置。
2012-09-10 cs.LO cs.PL
Building an IDE for the Calculational Derivation of Imperative Programs
在本文中,我们描述了一个IDE称为CAPS(计算助理编程规范)的交互式,计算推导的命令式程序。在构建CAPS的过程中,我们的目标是让非专家也能访问IDE,同时保留纸笔计算风格的整体风格。我们将讨论CAPS系统的整体架构、IDE的主要功能、GUI设计以及所涉及的权衡。
2015-08-17 cs.LO cs.PL
Proving Equivalence Between Imperative and MapReduce Implementations Using Program Transformations
分布式程序通常在MapReduce、Spark和Thrill等流行的功能框架中制定,但为此类框架编写高效的算法通常是一项不平凡的任务。由于大规模运行错误算法的成本可能很高,因此非常需要验证它们的正确性。我们建议采用现有的命令式参考实现作为MapReduce实现的规范。为此,我们提出了一种新的验证方法,其中一个命令和MapReduce实现之间的等价性建立了一系列的程序转换。在本文中,我们提出了如何等价框架可以用来证明之间的等价性的PageRank算法和MapReduce变种的强制性实现。八个单独的转换步骤分别介绍和解释。
2018-03-27 cs.LO cs.PL
Relational Cost Analysis for Functional-Imperative Programs
关系成本分析旨在正式建立两个项目评估成本差异的界限。作为一个特殊的情况下,也可以使用关系成本分析,以建立在两个不同的输入相同的程序的评估成本的差异的界限。执行关系成本分析的一种方法是使用关系类型和效果系统,该系统支持对两个程序的两次执行之间的关系进行推理。基于这一基本思想,我们提出了一个类型和效果的系统,称为ARel,推理数组操作,高阶函数命令式程序的相对成本。我们的方法的关键成分是一个新的轻量级类型细化规则,我们使用它来跟踪两个数组之间的关系(差异)。这种纪律结合霍尔风格的三元组内置的类型,使我们能够表达和建立精确的相对成本的几个有趣的程序,迫切需要更新他们的数据。
2019-09-24 cs.LO cs.PL
Verification of Imperative Programs by Constraint Logic Program Transformation
本文提出了一种基于约束逻辑程序变换(CLP)的方法来验证操作整数和数组的命令式程序的部分正确性。我们使用CLP作为一种元语言来表示命令式程序,它们的执行和它们的属性。首先,我们将命令式程序的正确性编码为CLP程序T定义的谓词“不正确”的否定。通过构造,“不正确”在T的最小模型中成立,当且仅当从初始配置执行prog最终在错误配置中停止。然后,我们对程序T应用一系列保持其最小模型语义的变换。这些转换是基于众所周知的转换规则,如展开和折叠,由适当的转换策略,如专业化和泛化。转换的目的是导出一个新的CLP程序TransfT,其中谓词“不正确”由以下定义:(i)事实“不正确”。'(在这种情况下prog是不正确的),或者由(ii)空子句集(在这种情况下prog是正确的)。在我们导出CLP程序使得(i)和(ii)都不成立的情况下,我们对变换进行了简化。由于问题是不可判定的,这个过程可能不会终止。我们通过例子表明,我们的方法可以应用在一个相当系统的方式,是适合自动化的程序验证领域的许多技术开发的程序转换。
2013-09-20 cs.LO cs.PL
Pleasant Imperative Program Proofs with GallinaC
提出GallinaC,将图灵完备命令式语言浅层嵌入Rocq证明助手的Gallina中,支持无界while循环,复用函数式证明策略,并通过链表反转证明验证可行性,正推进与Cminor的前向模拟。
2025-09-16 cs.LO cs.PL
An Imperative Language for Verified Exact Real-Number Computation
本研究提出结合一阶命令式编程与极限算子的精确实数计算语言Clerical,通过非确定性守护选择解决实数线性序半可判定性问题,构建域论语义与可靠的Hoare风格规约逻辑,实现模块化验证,并给出OCaml实现与Coq形式化验证。
2024-09-18 cs.LO
Amortised Resource Analysis with Separation Logic
Hofmann和Jost之后的基于类型的摊销资源分析--其中资源与数据结构的单个元素相关联,并在线性类型规则下分配给程序员--已经成功地为函数程序提供了具体的资源界限,并为推理提供了良好的支持。在这项工作中,我们翻译的想法摊销资源分析,命令指针操作语言嵌入的资源逻辑,基于仿射直觉逻辑的集束影响,在分离逻辑。分离逻辑组件允许我们断言堆上可变数据结构的存在和形状,而资源组件允许我们声明与结构的每个成员相关联的可消耗资源。我们提出了一个小的命令式语言的逻辑,基于Java字节码,程序和可变堆。我们已经正式的Coq证明助手内的逻辑和它的可靠性属性,并提取了认证的验证条件生成器。我们还描述了一个证明搜索过程,允许生成的验证条件被释放,同时使用线性规划来推断消耗性资源注释。我们证明了一些例子的逻辑,包括证明了循环尾列表上的原地列表反转的终止。
2011-06-20 cs.LO
Implementing Hybrid Semantics: From Functional to Imperative
混合程序将数字控制与微分方程相结合,自然地出现在从生物学和控制理论到实时软件工程的广泛应用领域。这种程序固有的离散和连续行为的纠缠超出了既定的计算机科学基础,产生了与例如无限迭代和混合行为与其他效果的组合相关的挑战。最近出现了一个系统的处理杂交作为一个专门的计算效果。特别是,一个通用的理想化的功能语言HybCore的声音和足够的操作语义已被提出。然而,后一种语义并没有提供将HybCore实现为可运行语言的提示,适合混合系统仿真(例如,语义特征规则具有不可数的前提)。我们介绍了一个强制性的对应HybCore,其语义更简单,可运行,但密切相关的混合单子的层次上的语义HybCore。然后,我们建立了相应的可靠性和充分性定理。为了证明,由此产生的语义可以作为一个坚实的基础,面向混合领域的编程的典型工具的实施,我们提出了一个基于Web的原型实现评估和检查混合程序,在GHCi的Haskell和UTop的OCaml的精神。我们的实现的主要资产是,它正式遵循的操作语义规则。
2020-09-29 cs.LO
A Diagrammatic Algebra for Program Logics
本文通过引入带 $\oplus$ 上迹的带图和 Kleene-Cartesian 双范畴,为命令式程序提供了一种图解记法与证明系统,其表达能力至少与 Hoare 逻辑相当。
2024-10-04 cs.LO
An SMT-Based Concolic Testing Tool for Logic Programs
Concolic测试混合了符号和具体执行,以有效地生成覆盖路径的测试用例。它的好处已经证明了超过15年的测试迫切的程序。其他编程范式,如逻辑编程,受到的关注较少。本文提出了一种基于concolic的逻辑程序测试生成方法。我们的方法利用SMT解决约束决议。然后,我们描述了一个concolic的Prolog测试工具的实现,并验证它在一些选定的基准。
2020-02-17 cs.LO
An Under-Approximate Relational Logic: Heralding Logics of Insecurity, Incorrect Implementation & More
最近,作者提出了下近似逻辑推理的程序。到目前为止,所有这些逻辑都局限于对单个程序行为的推理。然而,存在许多过度近似的关系逻辑,用于对程序对进行推理并将其行为关联起来。我们提出了第一个下近似关系逻辑,简单的命令式语言IMP。我们证明了我们的逻辑是健全的和完整的。此外,我们展示了如何在这个逻辑推理可以分解成非关系推理下近似霍尔逻辑,反映Beringer的结果过近似的关系逻辑。我们说明了我们的逻辑在一些小的例子中,我们证明了不安全的存在。
2020-03-11 cs.LO
On Decidable Growth-Rate Properties of Imperative Programs
2008年,本-阿姆拉姆、琼斯和克里斯蒂安森指出,对于一个简单的“核心”程序设计语言--一种有界循环的命令式语言,以及仅限于加法和乘法的算术--可以精确地决定一个程序是否具有某些增长率属性,即计算值或运行时间的多项式(或线性)界限。这项工作强调了核心语言在减轻程序属性臭名昭著的不可判定性方面的作用,以便处理可判定问题。一个自然而有趣的问题是,是否可以向核心语言添加更多的元素,提高其实用性,同时保持增长率属性的可判定性。特别是,所提出的方法无法处理将变量重置为零的命令。本文介绍了如何处理重置。分析是在一个逻辑风格(证明规则),其复杂性被证明是PSPACE-完全的(相比之下,没有重置,问题是PTIME)。分析算法以一种有趣的方式从以前的解决方案演变而来:焦点从证明一个界限转移到反驳它,算法自上而下而不是自下而上。
2010-05-04 cs.LO cs.PL
Pointer Data Structure Synthesis from Answer Set Programming Specifications
我们开发了一种归纳证明技术,以产生命令式程序的指针数据结构的行为规范中表示的回答集编程(ASP)的形式主义。ASP是一种基于非单调逻辑的形式主义,它采用了否定即失败,这有助于模拟人类的思维过程,允许领域专家简洁地建模所需的系统行为。我们认为,在本文中,ASP的依赖否定失败,使其成为一个更好的形式主义比那些基于一阶逻辑编写正式的规格说明。我们假设领域专家提供了归纳定义的数据结构的表示及其操作规范。我们的程序结合我们的新证明技术的原因,在规范和自动生成一个命令式的程序。我们的证明技术利用部分演绎的思想来简化逻辑规范。通过代数简化的逻辑规范,我们到达一个剩余的规范,可以解释为一个适当的命令式程序。这项工作是在根据给定的规范构造正确的程序的领域。
2020-08-13 cs.LO cs.SC
Soundness and Completeness of the NRB Verification Logic
这篇简短的论文给出了一个模型,并证明了确定性命令式程序的NRB验证逻辑的完整性,该逻辑在过去曾被用作大型,快速变化的开源C代码档案(如Linux内核源代码)的自动语义检查的基础。该模型是一个彩色的状态转换模型,从上面的一组可能的程序的过渡近似。相应地,逻辑捕获可能在程序中的给定点触发特定缺陷的所有跟踪,但也可能标记误报。
2013-08-18 cs.LO
HMC: Verifying Functional Programs Using Abstract Interpreters
我们提出了Hindley-Milner-Cousots(HMC),一个算法,允许任何一阶命令式程序的过程间分析被用来验证类型化高阶函数程序的安全属性。HMC工作如下。首先,它利用函数程序的类型结构来生成一组逻辑精化约束,这些约束的满足意味着源程序的安全性。其次,它将逻辑精化约束转换成一个简单的一阶命令式程序,该程序是安全的,当且仅当约束是可满足的。因此,HMC一举使工具的不变生成,例如,基于抽象域、谓词抽象、反例引导的精化和Craig插值可以直接应用于以全自动的方式验证现代函数式语言的安全属性。我们已经实现了HMC,并描述了初步的实验结果,使用两个命令式检查器- ARMC和InterProc -来验证OCaml程序。因此,通过组成基于类型的推理在程序语法和基于状态的推理在抽象解释的基础上,HMC打开了大门,以现代程序设计语言编写的程序的自动验证。
2010-12-30 cs.LO cs.PL
Generating Loop Invariants for Program Verification by Transformation
循环不变量在命令式程序的验证中起着核心作用。然而,找到这些不变量对于程序员来说通常是一项困难且耗时的任务。我们以前已经展示了如何程序转换可以用来促进功能程序的验证,但由于需要发现这些循环不变量,命令式程序的验证更具挑战性。在本文中,我们描述了一种自动发现循环不变量的技术。我们的方法类似于归纳迭代法,但避免了使用这种方法和其他方法时可能导致的子句中的潜在指数爆破。我们的方法利用了简化程序转换算法将子句转换为简化形式,便于识别它们之间的相似性和差异性,从而帮助发现不变量。我们证明,我们的技术终止,并证明其成功的应用程序,已被证明是有问题的使用其他方法的例子。我们还讨论了我们的技术未能找到一个不变的情况下,并显示如何可以改善到一定程度。
2017-08-24 cs.LO
On the construction of multi-valued concurrent dynamic logic
动态逻辑是对命令式程序进行推理的强大框架。引入了一个带有并发操作符的扩展[18]来形式化并行运行的程序。在另一个方向上,其他作者提出了一个系统的方法来生成多值命题动态逻辑来推理加权程序[14]。本文介绍了这两个框架相结合,在并发计算中引入不确定性的第一步。在开发的框架中,权重被分配给并行执行的每个分支,导致模糊编程范式固有的(可能的)非对称并行性[21,2]。通过采用这样的方法,得到了一族逻辑,称为多值并发命题动态逻辑(CGDL(A)),参数上的动作格A指定的“权重”的概念分配给程序执行。此外,还讨论了CPDL中某些公理在新的生成逻辑族中的有效性。
2019-11-01 cs.LO
Characterization of Strongly Equivalent Logic Programs in Intermediate Logics
与逻辑程序的答案集语义相关的非经典、非单调推理关系产生了逻辑程序之间的“强等价”关系,该关系可以在3值Goedel逻辑G3中得到验证,G3是最强的非经典中间命题逻辑(Lifschitz,Pearce和Valverde,2001)。本文将证明KC(通过将公理~A v ~A加到直觉逻辑中而得到的逻辑)是最弱的中间逻辑,对于它,强等价的逻辑程序在允许否定的语言中是逻辑等价的。
2002-06-03 cs.LO
Incorporating Inductions and Game Semantics into Logic Programming
归纳和博弈语义是对传统逻辑程序设计的两个有用的扩展。具体地说,归纳法可以捕获逻辑编程中更广泛的一类可证明公式。采用博弈语义可以使逻辑编程更具交互性。在本文中,我们提出了一个执行模型的逻辑语言与这些功能。这种执行模型密切遵循现实生活中的推理过程。
2015-08-08 cs.LO
First-Order Modular Logic Programs and their Conservative Extensions
模块化逻辑程序提供了一种将逻辑程序视为由许多独立的、有意义的模块组成的方法。本文介绍了一阶模逻辑程序,它可以捕获许多答案集程序的含义。我们还介绍了保守的扩展,这样的程序。这个概念有助于识别模块化程序之间以及传统程序之间的强关系。我们展示了如何保守扩展的概念可以用来证明常见的投影重写。这篇笔记正在考虑发表在《逻辑程序设计的理论与实践》上。
2017-02-17 cs.LO
Category theoretic semantics for theorem proving in logic programming: embracing the laxness
命题逻辑程序$P$可以用程序中的原子命题集合上的$P_fP_f$ -余代数来标识。相应的$C(P_fP_f)$ -余代数,其中$C(P_fP_f)$是$P_fP_f$上的余自由余代数,描述了归结导子.使用宽松的语义,这种对应关系可以扩展到一类没有存在变量的一阶逻辑程序。由此产生的扩展捕获逻辑编程中的术语匹配分辨率的证明。完善宽松的方法,我们进一步扩展到任意逻辑程序。我们还展示了一个完善的Bonchi和Zanasi的饱和语义逻辑编程,补充宽松的语义。
2016-02-17 cs.LO
Proving Correctness of Imperative Programs by Linearizing Constrained Horn Clauses
本文提出了一种基于规范自动转换的命令式程序正确性验证方法。给定一个程序prog,我们考虑形式为$\{φ\}$ prog $\{ψ\}$的部分正确性规范,其中断言$φ$和$ψ$是由可能递归的Horn子句的集合Spec定义的谓词,其前提中具有线性算术(LA)约束(也称为约束Horn子句)。验证方法包括在构造一组PC的约束Horn子句,其可满足性意味着$\{φ\}$ prog $\{ψ\}$是有效的。我们强调了一些限制的国家的最先进的约束霍恩子句求解方法,这里称为LA求解方法,证明可满足性的条款,通过寻找线性算术解释的谓词。特别是,我们证明了存在一些规格,不能证明有效的任何这些LA解决方法。这些规范要求证明一组包含非线性子句(即前提中有多个原子的子句)的受约束Horn子句的PC的可满足性。然后,我们提出了一个转换,称为线性化,PC转换成一组线性条款(即条款,在其前提中最多一个原子)。我们表明,几个规格,不能被证明是有效的LA解决方法,可以被证明是有效的线性化后。我们还提出了一种策略,用于执行线性化在一个自动的方式,我们报告的一些实验结果,通过使用我们的方法的初步实施。
2015-07-21 cs.LO cs.PL
Foundations of logic programming in hybrid-dynamic quantum logic
本文提出一种简单且富有表达力的混合动态逻辑用于描述量子程序,研究其中的 Horn 子句并证明初始语义定理,进而通过证明 Herbrand 定理变体奠定了该逻辑片段中量子程序逻辑编程的基础。
2024-06-04 cs.LO
Program Logics for Homogeneous Generative Run-Time Meta-Programming
本文提供了同构生成运行时间元编程的第一个程序逻辑-使用Davies和Pfenning的MiniML变体作为其底层Meta程序设计语言。我们证明了我们的方法的适用性推理的例子元程序从文献。我们还证明了我们的逻辑是相对完整的库克意义上,使归纳推导的特征公式,并准确地捕捉观察属性诱导的操作语义。
2017-03-29 cs.LO
An Almost Classical Logic for Logic Programming and Nonmonotonic Reasoning
介绍了一种称为N^4的一阶逻辑的模型理论。N^4并不像经典逻辑那样消除双重否定,而是减少了四重否定。N^4非常接近经典逻辑:N^4有两个真值; N^4中的蕴涵是实质性的,就像在经典逻辑中一样;否定分布在N^4中的复合公式中,就像在经典逻辑中一样。结果表明,正规逻辑程序的语义可以方便地用N^4形式化:经典逻辑Herbrand解释可以直接推广到N^4;正逻辑程序的经典最小Herbrand模型与其唯一的最小N^4 Herbrand模型一致;正规逻辑程序的稳定模型与其所谓的完全最小N^4 Herbrand模型一致.
2002-07-25 cs.LO
Predicate Transformers and Linear Logic, yet another denotational model
在精化演算中,单调谓词Transformers被用来为(命令式)程序建模。与模拟的自然概念一起,它们形成了一个具有许多代数性质的范畴。我们建立在这个结构上,使谓词Transformers成为一个完整的线性逻辑的描述模型:所有的逻辑结构都有一个自然的解释谓词Transformers器(即在规范方面)。然后,我们解释证明的一个公式的安全性为相应的规格。
2009-05-25 cs.LO math.LO
A Quantum Interpretation of Bunched Logic for Quantum Separation Logic
我们提出了一个模型的子结构逻辑聚束的影响(BI),是适合于推理量子态。在我们的模型中,BI的分离合取描述了可分离的量子态。我们开发了一个程序逻辑,其中的前置条件和后置条件是描述量子态的BI公式-程序逻辑可以被看作是命令式量子程序的分离逻辑的对应物。我们练习逻辑证明量子一次性密码本和秘密共享的安全性,我们展示了如何使用程序逻辑来发现Google Cirq的变分量子算法(VQA)教程中的缺陷。
2021-01-30 cs.LO quant-ph
Verification Logics for Quantum Programs
我们调查景观的霍尔逻辑的量子程序。我们回顾三篇论文:Chadha,Mateus和Sernadas的“Reasoning about imperative quantum programs”; Yoshihiko Kakutani的“A logic for形式化验证of quantum programs”; Mingsheng Ying的“Floyd-霍尔逻辑for quantum programs”。我们比较了逻辑的数学基础,它们的底层语言,以及它们的断言的表达能力。我们还使用这些语言对Deutsch-Jozsa算法进行了验证,并讨论了它们在实际中的相对可用性。
2019-04-08 cs.ET cs.LO cs.PL
On completeness of logic programs
程序正确性(在命令式和函数式编程中)在逻辑编程中分为正确性和完整性。完整性意味着一个程序产生了它的规范所要求的所有答案。很少有人致力于对完备性的推理。本文给出了定规划完备性的几个充分条件。我们还研究了在SLD树的某些修剪情况下(例如,由于使用切割)保持完整性。我们将逻辑编程视为一种声明性的范例,尽可能地从任何操作语义中抽象出来。我们认为,所提出的方法是足够简单的应用,可能在一个非正式的水平,在实际的Prolog编程。我们指出近似规格的重要性。
2014-11-11 cs.LO cs.PL
Extending Isabelle/HOL's Code Generator with support for the Go programming language
本工作为Isabelle/HOL的代码生成器新增Go语言作为第五种目标语言,通过命令式构造模拟函数式特性,并以附加库形式提供支持。
2024-09-19 cs.LO cs.PL
Syntax and semantics of multi-adjoint normal logic programming
本文提出了多伴随正规逻辑程序,通过在底层格中引入否定算子扩展了原有框架,并给出了其语法语义及确保稳定模型存在性与唯一性的充分条件。
2024-09-24 cs.LO math.LO
Stable models and an alternative logic programming paradigm
在本文中,我们重新审视的地方和作用的稳定模型语义在逻辑编程和对比,它与最少Herbrand模型的方法霍恩程序。我们证明了稳定模型语义的固有特征自然会导致一个逻辑编程系统,提供了一个有趣的替代更传统的逻辑编程风格的霍恩逻辑编程,分层逻辑编程和逻辑编程与良好的基础语义。所提出的方法是基于程序条款的约束的解释。在这种情况下,程序不描述一个单一的预期模型,而是一系列稳定的模型。这些稳定的模型编码解决方案的约束满足的问题所描述的程序。我们的方法对逻辑程序的语法施加了限制。特别是,函数符号被从语言中删除。我们认为,由此产生的逻辑编程系统是很好地协调NP类的问题,有一个定义明确的应用领域,和一个新兴的编程方法。我们指出,是什么使整个方法可行的算法来计算命题逻辑程序的稳定模型的实现的最新进展。
1998-09-18 cs.AI cs.LO
Extended multi-adjoint logic programming
本研究提出扩展多伴随逻辑程序设计范式,纳入约束与特殊聚合算子,给出语法语义,并提出转换为多伴随正规逻辑程序的机制,建立稳定模型关联,实现相关理论的迁移应用。
2024-10-07 cs.LO math.LO
A Rational Entailment for Expressive Description Logics via Description Logic Programs
ISTI - CNR(意大利国家研究委员会信息科学与技术研究所);CAIR - University of Cape Town(开普敦大学CAIR)
Lehmann和Magidor的有理闭包被认为是非单调逻辑领域的一个里程碑,它也在描述逻辑(DL)的背景下被重新表述。我们在这里展示了如何建模的合理形式的蕴涵表达DL,如SROIQ,提供了一种新的推理过程,编译成一个描述逻辑程序(DL程序)的非单调DL知识库。
2021-06-28 cs.AI cs.LO
The (Lazy) Functional Side of Logic Programming
将逻辑程序转换成功能程序的可能性一直是研究的课题。许多方法的共同点是,原始逻辑程序,为了被翻译,需要被良好地模态化,这导致了这样的共识,即这些程序可以被认为是逻辑程序的“功能部分”。因此,“复杂”逻辑变量、动态选择规则的可能性以及非良模程序的一般属性是逻辑程序的独有特征,这一点已被广泛接受。这并不完全正确,因为其中一些特性在惰性函数式语言中自然存在。我们通过定义一个适用于更广泛的逻辑程序的简单翻译,重新讨论了什么功能是逻辑编程范式所独有的老问题,并证明了目前的界限是不合理的限制。
2000-03-20 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
A Polynomial Translation of Logic Programs with Nested Expressions into Disjunctive Logic Programs: Preliminary Report
嵌套逻辑程序最近被引入,以便允许在答案集语义下的逻辑程序规则的头部和主体中的任意嵌套公式。嵌套表达式可以不受限制地使用合取、析取以及作为失败操作符的否定来形成。这为知识表示和推理提供了一个非常灵活和紧凑的框架。已有的结果表明,嵌套逻辑程序可以初等地转化为标准(非嵌套)析取逻辑程序,只需对体文字应用否定作为失败算子.这是非常实际的相关性,因为它允许我们评估嵌套的逻辑程序的手段,现成的析取逻辑编程系统,如DLV。然而,事实证明,这种简单的转换在最坏的情况下会导致指数爆破,尽管复杂性结果表明两种形式主义之间存在多项式转换。在本文中,我们接受了这一挑战,并提供了一个多项式的逻辑程序与嵌套表达式转换为析取逻辑程序。此外,我们表明,这种翻译是模块化的和(强)忠实。我们已经实现了简单的和高级的转换;生成的编译器作为DLV的前端,并在Web上公开提供。
2002-07-19 cs.AI cs.LO
Tractable reasoning about Agent Programming in Dynamic Preference Logic
虽然在Agent编程领域已经提出了几种BDI逻辑,但尚不清楚这些逻辑如何连接到它们应该指定的Agent程序。更重要的是,这些逻辑中的推理问题,基于模态逻辑,一般来说是不容易处理的,限制了它们的使用来解决现实世界的问题。在这项工作中,我们使用的动态偏好逻辑BDI代理程序设计语言提供了一个语义基础,并调查这个逻辑的易处理的表达片段的原因代理程序。有了这一点,我们的目标是提供一种实现语义接地代理程序设计语言与易处理的推理周期的方式。
2019-11-14 cs.LO cs.MA
Automated Termination Analysis for Logic Programs with Cut
可终止性是逻辑程序的一个重要性质,也是研究得很好的性质。然而,几乎所有的自动终止分析方法都集中在确定的逻辑程序上,而实际的Prolog程序通常使用cut运算符。本文介绍了一种新的预处理方法,它能自动地将Prolog程序转换成无割的逻辑程序,其中无割程序的终止意味着原程序的终止。因此,在该预处理之后,可以应用用于证明确定逻辑程序的终止的任何技术。我们在我们的终止证明程序AProVE中实现了这种预处理,并成功地进行了广泛的实验。
2010-07-28 cs.LO cs.PL
Logic Programming for Describing and Solving Planning Problems
一个逻辑编程范式,表示解决问题的稳定模型,最近已被提升为一个声明性的方法来解决各种组合和搜索问题,包括规划问题。在这种范式中,所有的程序规则被认为是约束和解决方案是稳定的模型的规则集。这与逻辑编程的标准范式有着相当大的不同。在本文中,我们重新溯因逻辑编程,并认为它允许一种编程风格,这是声明性的编程基于稳定的模型。然而,在溯因逻辑编程中,有两种规则。一方面是谓词定义(可能依赖于可溯物),它只不过是标准的逻辑程序(当包含否定时,具有非单调语义);另一方面是约束可溯物模型的规则。在这个意义上,溯因逻辑编程是逻辑编程标准范式的平滑扩展,而不是彻底的背离。
2000-03-08 cs.AI cs.LO
Logic programs with monotone abstract constraint atoms
本文介绍并研究了子句由单调约束原子构成的逻辑程序。我们表明,一步证明算子的操作概念推广到单调约束原子的程序,但推广涉及非确定性。我们的主要结果表明,我们的形式化是一个共同的推广(1)正常的逻辑编程与其语义的模型,支持的模型和稳定的模型,(2)逻辑程序与重量原子(lparse程序)的语义的稳定模型,定义的Niemela,Simons和Soininen,(3)析取逻辑编程与可能的模型语义的Sakama和井上。
2006-08-25 cs.AI cs.LO
Bayesian Logic Programs
贝叶斯网络提供了一个优雅的形式主义表示和推理的不确定性使用概率论。它们是命题逻辑的概率扩展,因此继承了命题逻辑的一些局限性,例如难以表示对象和关系。我们引入了贝叶斯网络的一般化,称为贝叶斯逻辑程序,以克服这些限制。为了表示对象和关系,它通过在基础原子和随机变量之间建立一对一的映射,将贝叶斯网络与确定性子句逻辑相结合。我们表明,贝叶斯逻辑程序结合了确定子句逻辑和贝叶斯网络的优点。这包括模型的定量和定性方面的分离。此外,贝叶斯逻辑程序推广贝叶斯网络以及逻辑程序。所以,很多想法
2001-11-23 cs.AI cs.LO
Proceedings 40th International Conference on Logic Programming
University of Texas at Dallas(德克萨斯大学达拉斯分校)
该论文集收录第40届国际逻辑程序设计会议(ICLP)的技术内容,涵盖逻辑程序设计的语义、语言设计、程序分析及实现方法学等领域,展现该领域的最新研究成果。
2025-02-11 cs.AI cs.LO