Reference Type Logic Variables in Constraint-logic Object-oriented Programming
约束逻辑面向对象的编程,例如使用Muli,促进了商业软件的集成开发,偶尔涉及找到约束逻辑问题的解决方案。面向对象特性的可用性要求将对象也用作逻辑变量,而不是仅限于基本类型的逻辑变量。目前的工作贡献了一个概念,引用类型的逻辑变量的约束逻辑面向对象的编程,考虑到任意类层次结构的程序编写的面向对象的语言。这个概念讨论了约束逻辑面向对象程序和引用类型逻辑变量之间的交互,特别是对逻辑变量的调用和访问,类型操作和等式。此外,它还提出了相应的执行环境如何处理这些交互的方法。
2019-03-01 cs.PL
Proceedings 29th and 30th Workshops on (Constraint) Logic Programming and 24th International Workshop on Functional and (Constraint) Logic Programming
(约束)逻辑编程研讨会(WLP)是德国逻辑编程学会(Gesellschaft für Logische Programmierung e.V.,GLP),并汇集了对逻辑编程、约束编程、答案集编程以及数据库和人工智能等相关领域感兴趣的研究人员(不仅来自德国)。函数和(约束)逻辑编程国际研讨会(WFLP)旨在汇集对函数编程,逻辑编程及其集成感兴趣的研究人员,学生和从业者。讲习班有一个共同地点的传统,以促进对高级声明性程序设计语言和相关领域的基础、应用和组合感兴趣的社区之间的跨部门思想和经验交流。
2016-12-31 cs.LO cs.PL
18th Workshop on Logic-based methods in Programming Environments (WLPE 2008)
本卷包含了在WLPE 2008上发表的论文:2008年12月12日在意大利乌迪内举行的第18届基于逻辑的编程环境方法研讨会。它是作为ICLP 2008的卫星研讨会举行的,ICLP 2008是第24届逻辑编程国际会议。
2009-03-26 cs.PL
Proceedings of the 23rd Workshop on Logic-based methods in Programming Environments (WLPE 2013)
本卷包含在第23届基于逻辑的编程环境方法研讨会(WLPE 2013)上提交的论文,该研讨会于2013年8月24日和25日在土耳其伊斯坦布尔举行,作为第29届逻辑编程国际会议(ICLP 2013)的卫星活动。
2013-08-22 cs.PL
Programming with High-Level Abstractions, Proceedings of the 3rd Workshop on Logic and Practice of Programming
本文集汇集第三届LPOP研讨会成果,围绕集合与逻辑规则等高级抽象,推动其进入通用编程实践。
2024-09-28 cs.PL
Proceedings of the 16th Workshop in Logic-based Methods in Programming Environments (WLPE2006)
本卷包含在WLPE'06上提交的论文:2006年8月16日在美国华盛顿州西雅图喜来登酒店举行的第16届编程环境中基于逻辑的方法研讨会。它是作为ICLP'06(第22届逻辑编程国际会议)的卫星研讨会组织的。
2007-01-24 cs.PL
A Proof Theoretic Approach to Failure in Functional Logic Programming
如何从程序中提取负信息是逻辑程序设计中的一个重要问题。在这里,我们解决问题的功能逻辑程序,从证明理论的角度来看。我们工作的出发点是CRWL(Constructor based ReWriting Logic),它是一个成熟的函数逻辑编程理论框架,其基本概念是非严格非确定函数。我们提出了一个证明演算,CRWLF,这是能够推导出否定信息的CRWL程序。特别是,CRWLF能够证明CRWL内的复位有限失败。
2004-05-27 cs.PL
Logic programming in the context of multiparadigm programming: the Oz experience
Oz是一种多范式语言,支持逻辑编程作为其主要范式之一。多范式语言被设计为支持不同的编程范式(逻辑、函数、约束、面向对象、顺序、并发等)。同样轻松。本文有两个目标:在Oz中给出逻辑编程的教程,并展示逻辑编程如何自然地融入多范式编程的更广泛背景。我们的经验表明,有两类问题,我们称之为算法和搜索问题,逻辑编程可以帮助制定实际的解决方案。数学问题有已知的有效算法。搜索问题没有已知的有效算法,但可以用搜索来解决。Oz对逻辑编程的支持专门针对这两个问题类,使用每个问题类所需的概念。这与Prolog方法相反,Prolog方法用一组概念来针对两个类,这导致对每个类的支持不是最佳的。为了解释算法程序和搜索程序之间的本质区别,我们定义了Oz执行模型。这个模型包含了并发逻辑编程(committed-choice-style)和基于搜索的逻辑编程(Prolog-style)。与Horn子句语法不同,Oz有一个简单的、完全组合的、高阶的语法,它适应了语言的能力。最后,我们总结了从这项工作中吸取的教训,奥兹国的简史,以及奥兹国文学的许多切入点。
2002-08-20 cs.PL
Pre-Proceedings of the 28th International Workshop on Functional and Logic Programming (WFLP 2020)
本卷是由意大利博洛尼亚大学组织的第28届函数和逻辑编程国际研讨会(WFLP 2020)的预录,作为2020年程序设计语言博洛尼亚联合会议的一部分。函数和(约束)逻辑编程国际研讨会(WFLP)旨在汇集对函数编程,逻辑编程及其集成感兴趣的研究人员,学生和从业者。WFLP是一个活跃而友好的论坛,它是开放的,可以展示和讨论正在进行的工作,技术贡献,经验报告,实验,评论和系统描述。
2020-09-04 cs.PL
The Logic Programming Paradigm and Prolog
这是一个关于逻辑编程和Prolog的教程,适合于熟悉命令式编程的学生的程序设计语言课程。
2001-07-12 cs.AI cs.PL
(Co)recursion in Logic Programming: Lazy vs Eager
CoALP(英语:CoAlgebraic Logic Programming)是逻辑编程的一种方言,旨在为逻辑编程中的递归和共递归函数带来更精确的编译时和运行时终止和生产力分析。它的第二个目标是将类似于函数定理证明器的保护惰性(共)递归引入逻辑编程。在本文中,我们解释了CoALP的懒惰特性,并将其与CoLP中的循环分析和急切执行进行了比较。最后,我们概述了未来的发展方向,在逻辑编程的守护(共)递归。
2014-05-20 cs.LO cs.PL
Logic Programming with Macro Connectives
像Prolog这样的逻辑编程通常是顺序的,而且速度很慢,因为每个执行步骤只处理一个$micro$连接符。为了解决这个问题,我们建议使用$macro$连接词作为提高可读性和性能的手段。
2018-05-07 cs.PL
Expert Systems with Logic#. A Novel Modeling Framework for Logic Programming in an Object-Oriented Context of C#
IU International University of Applied Sciences(IU国际应用科学大学)
我们提出了一种新的方法如何逻辑编程的专家系统可以直接声明在一个面向对象的语言。
2022-05-16 cs.AI cs.PL
Relations, Constraints and Abstractions: Using the Tools of Logic Programming in the Security Industry
逻辑编程有时被描述为关系编程:程序员使用约束系统指定和组合n元关系的范式。高级逻辑编程环境将提供抽象这些关系的工具,以转换、优化甚至验证逻辑程序的正确性。本次演讲将表明,这些概念,即关系,约束和抽象,原来也是重要的反向工程过程中,支持安全行业内的错误发现。
2009-03-13 cs.PL
Bounded Choice Queries for Logic Programming
在逻辑编程中,向目标和查询添加通用交互是一项重要任务。不幸的是,现有的逻辑语言只能通过$read$结构从用户处获取输入。我们建议添加一个新的交互式目标,以允许更多的控制和更多的指导用户的参与。我们说明我们的想法通过\muprolog,扩展的Prolog有界选择目标。
2013-08-03 cs.PL
Kanren Light: A Dynamically Semi-Certified Interactive Logic Programming System
我们提出了一个实验系统强烈的启发miniKanren,实现顶部的HOL~光定理证明器的战术机制。我们的工具是在同一时间的机制,使逻辑编程风格的推理和计算的定理证明,和一个框架,用于编写逻辑程序,产生的解决方案,赋予一个正式的证明的正确性。
2020-07-09 cs.PL
Logic Programming with Satisfiability
本文提出了一个Prolog接口的MiniSat可满足性求解器。具有可满足性的逻辑程序- ming结合了两种范式的优势:一方面将搜索问题编码为可满足性的逻辑编程,另一方面有效地求解SAT。这两者之间的协同作用暴露了一个编程范式,我们在这里提出的逻辑编程珍珠。为了说明逻辑编程与SAT解决我们给出了一个例子Prolog程序解决部分MAXSAT的实例。
2007-02-13 cs.AI cs.PL
Speedup of Logic Programs by Binarization and Partial Deduction
二进制逻辑程序可以通过二进制化变换从普通逻辑程序获得。在大多数情况下,以这种方式获得的二进制程序的效率低于原始程序。(Demoen,1992)展示了一个有趣的逻辑程序的例子,当它被转换成二进制程序,然后通过部分演绎进行专门化时,它的计算行为得到了改善。定义了B-分层逻辑程序类。它表明,对于每一个B-分层逻辑程序,二进制化和随后的部分演绎产生一个二进制程序,不包含变量的连续二进制化介绍。这样的程序通常比原来的程序有更好的计算性能。二值化和部分演绎都可以很容易地自动化。与其他相关的方法程序转换的比较。
2003-12-15 cs.AI cs.PL
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
Typed SLD-Resolution: Dynamic Typing for Logic Programming
逻辑编程的语义基础通常分为两种不同的方法。操作语义,它使用SLD解析,证明方法,计算逻辑编程中的答案,和声明语义,它把逻辑程序看作公式,把它的语义看作模型。在这里,我们定义了一个新的操作语义,称为TLDD-解析,它代表类型化的SLD-解析,其中我们包括一个值“错误”,对应于在运行时检测到类型错误。为此,我们定义了一个新的类型统一算法。最后,我们证明了TSLD-决议的正确性方面的一个类型的声明语义。
2022-07-30 cs.PL
Natural Hoare Logic: Towards formal verification of programs from logical forms of natural language specifications
形式化验证为软件的正确性提供了强有力的保证,这在安全或安全关键系统中尤为重要。霍尔逻辑是一种广泛使用的形式主义,用于以前置条件/后置条件断言的形式针对规范对软件进行严格验证。语义解析技术的进步和更高的计算能力使我们能够从自然语言文本中提取语义内容作为形式逻辑形式,具有越来越高的准确性和覆盖率。本文提出了一个基于霍尔逻辑的命令式程序形式化验证的形式化框架,该框架使用由自然语言断言的组合语义解析生成的逻辑形式。我们称这种推理方法为自然霍尔逻辑。这使得能够直接针对领域专家以自然语言指定的安全需求对软件进行形式化验证。我们认为这两个声明性断言的程序不变量和状态变化以及命令性断言,指定命令改变程序状态。我们将讨论如何推理方法可以扩展使用领域知识和实用的方法,防止语义分析器错误。
2021-03-04 cs.PL
From Program Logics to Language Logics
本文提出语言逻辑及形式系统 $\mathbb{L}$,以类似程序逻辑的断言方式分析文法、类型规则和归约规则等语言定义组件,并通过自动证明器复现相关分析。
2024-08-02 cs.PL
Automated Termination Analysis for Logic Programs with Cut
可终止性是逻辑程序的一个重要性质,也是研究得很好的性质。然而,几乎所有的自动终止分析方法都集中在确定的逻辑程序上,而实际的Prolog程序通常使用cut运算符。本文介绍了一种新的预处理方法,它能自动地将Prolog程序转换成无割的逻辑程序,其中无割程序的终止意味着原程序的终止。因此,在该预处理之后,可以应用用于证明确定逻辑程序的终止的任何技术。我们在我们的终止证明程序AProVE中实现了这种预处理,并成功地进行了广泛的实验。
2010-07-28 cs.LO cs.PL
Building Extensible Program Logics through Effect Handlers
New York University(纽约大学);CISPA Helmholtz Center for Information Security(CISPA赫尔姆霍兹信息安全中心)
本文提出基于效应处理程序构建可扩展程序逻辑的方法,从表达性程序逻辑出发,实现模拟多种行为的处理程序并证明其属性以扩展逻辑,还开发关系逻辑,该方法能产生更强推理规则且可扩展。
2026-07-15 cs.LO cs.PL
Nominal Logic Programming
名义逻辑是一阶逻辑的扩展,它为抽象语法的形式化和推理提供了一个简单的基础,模一致的重命名的绑定名称(即α-等价)。本文研究基于名义逻辑的逻辑程序设计。我们描述了一些典型的名义逻辑程序,并发展了这类程序的模型论、证明论和操作语义。除了确保实现的正确行为的兴趣,这些结果提供了一个严格的基础技术分析和推理的名义逻辑程序,我们通过例子说明。
2007-08-20 cs.LO cs.PL
A Survey of the Proof-Theoretic Foundations of Logic Programming
一些形式系统,如归结和最小模型语义,为逻辑编程提供了一个框架。在本文中,我们将调查使用结构证明理论作为替代基础。在过去的35年里,研究人员一直在使用这个基础来将逻辑编程从一阶经典逻辑的根源提升到直觉和线性逻辑的高阶版本。这些更具表现力的逻辑程序设计语言允许捕获有状态计算和丰富形式的抽象,包括高阶编程、模块化和抽象数据类型。术语级绑定是另一种抽象,在证明理论和这些扩展逻辑程序设计语言中,它们都得到了优雅而直接的处理。逻辑编程也激发了证明理论的新成果,例如涉及极性和聚焦证明的成果。这些最新的研究结果提供了一个高层次的手段,呈现前向链和后向链风格推理之间的差异。在证明论中验证逻辑编程也有助于识别它与函数式编程、演绎数据库和模型检验的联系和区别。
2021-10-30 cs.LO cs.PL
Proceedings of the First Workshop on Coalgebra, Horn Clause Logic Programming and Types
余代数,霍恩子句逻辑编程和类型研讨会于2016年11月28日至29日在爱丁堡举行。该研讨会标志着EPSRC授予的类型推断的共代数逻辑编程的结束。Komendantskaya,赫瑞瓦特大学和J. Power,巴斯大学,英国。
2017-09-13 cs.LO cs.PL
Benchmarking for Integrating Logic Rules with Everything Else
本文提出一组编程与性能基准,用于评估将逻辑规则与其它语言特性集成的语言,并报告了集成语言、逻辑语言及非逻辑规则语言的评估结果。
2023-08-30 cs.LO cs.PF cs.PL
Introduction to the 28th International Conference on Logic Programming Special Issue
Univ. di Udine(乌迪内大学);CRACS(高级计算研究中心);INESC-TEC(葡萄牙系统与计算机工程研究所-技术与科学);Univ. do Porto(波尔图大学)
我们很自豪地介绍这期《逻辑编程理论与实践杂志》(TPLP)的特刊,致力于第28届逻辑编程国际会议(ICLP)的论文全文。ICLP会议于1982年在马赛开始,此后成为介绍和讨论逻辑编程领域工作的主要场所。
2012-10-15 cs.AI cs.PL
Towards Distributed Logic Programming based on Computability Logic
DongA University(东亚大学)
{ \em Computability logic}(CoL)是一个强大的计算模型,它将计算问题视为机器及其环境之间的博弈。在本文中,我们表明,CoL自然支持分布式控制的多智能体编程模型。具体地说,我们讨论了一个基于CoL的分布式逻辑编程模型(确切地说是CL 1),我们称之为CL 1 ^Ω。该模型的主要特点是支持Agent的$dynamic/evolving$知识库。事实证明,这种模型是实现通用AI和未来计算模型的一种有前途的方法。
2022-08-07 cs.AI cs.PL
A Logic for Correlating Temporal Properties across Program Transformations
程序转换广泛应用于软件的综合、优化和维护。程序转换的正确性依赖于输入程序的一些重要性质的保持。通过把程序看作Kripke结构,程序的许多有趣的性质可以用时序逻辑来表达。在时序逻辑中,公式在单个程序上解释。然而,为了证明变换的正确性,我们会遇到包含一些子公式的公式,这些子公式在输入程序上解释,而在变换后的程序上解释。出现这种情况的一个例子是验证编译器应用的优化程序转换。在本文中,我们提出了一个逻辑称为时间转换逻辑(TTL)的原因,这样的公式。我们考虑不同类型的原始转换,并提出TTL推理规则。我们的程序转换和时序逻辑运算符的定义是新颖的,在他们使用的布尔矩阵代数。这导致了简洁和建设性的规范。此外,我们使用布尔矩阵代数在一个统一的方式来证明可靠的TTL推理规则。
2012-09-24 cs.LO cs.PL
An Improved Proof-Theoretic Compilation of Logic Programs
在以前的工作中,我们表明,逻辑编程编译可以给出一个通用的抽象逻辑程序设计语言的证明理论的理由,并证明了这种技术的情况下,遗传Harrop公式及其线性变体。编译后的子句本身就是逻辑公式,除了在与它们的头相匹配的原子目标上存在二阶抽象。在本文中,我们重新审视我们以前的结果,以更详细和更充分的逻辑理由,消除这种虚假的抽象。然后,我们改进所得到的技术,以有效地支持模式良好的程序。
2012-10-05 cs.LO cs.PL
Transformation Rules for Locally Stratified Constraint Logic Programs
本文提出了一组带否定的约束逻辑程序的转换规则。我们假设每一个程序都是局部分层的,因此,它有一个唯一的完美模型。我们给出了充分的条件,确保建议的一套转换规则保持完美的模型的程序。我们的规则扩展在某些方面的规则逻辑程序和约束逻辑程序已经考虑在文献中,特别是,他们包括一个规则展开一个条款相对于一个负文字。
2004-02-20 cs.LO cs.PL
Outcome Logic: A Unified Approach to the Metatheory of Program Logics with Branching Effects
本文扩展Outcome Logic,以选择的代数表示统一刻画非确定性、概率性等分支效应,并给出支持通用循环、可跨规范复用证明片段的较完整证明系统及其元理论。
2025-06-10 cs.LO cs.PL
Transforming Coroutining Logic Programs into Equivalent CHR Programs
我们扩展了一种称为编译控制的技术。该技术将协同程序设计逻辑程序转换为逻辑程序,当在标准的从左到右选择规则下执行时(并且不使用任何延迟特征),该逻辑程序具有与协同程序设计相同的计算行为。在最近的工作中,我们修改了编译控制,并将其重新表述为抽象合取部分演绎的实例。这项工作主要集中在编译控制中执行的程序分析。在当前的文件中,我们专注于合成的转换程序。代替合成一个新的逻辑程序,我们合成一个模拟协同程序的Prolog程序。对递归的综合产生只包含简化规则的程序,这些规则特别适合于某些静态分析技术。这些程序也更简洁和可读,并且可以移植到嵌入在其他语言中的Prolog实现。
2017-08-24 cs.LO cs.PL
Proceedings 35th International Conference on Logic Programming (Technical Communications)
自1982年在马赛举行第一次会议以来,ICLP一直是展示逻辑编程研究的首要国际活动。在逻辑编程的所有领域寻求贡献,包括但不限于:基础:语义学,形式主义,非单调推理,知识表示。语言:并发,对象,协调,移动性,高阶,类型,模式,断言,模块,元编程,基于逻辑的领域特定语言,编程技术。声明式编程:声明式程序开发,分析,类型和模式推理,部分求值,抽象解释,转换,验证,验证,编译,分析,测试,执行可视化实现:虚拟机,编译,存储管理,并行/分布式执行,约束处理规则,制表,外部接口,用户界面。相关范例和协同作用:归纳和协同归纳逻辑程序设计、约束逻辑程序设计、答案集程序设计、与SAT、SMT和CSP求解器的交互、类型推断和定理证明的逻辑程序设计技术、论证、概率逻辑程序设计、与面向对象和函数式程序设计的关系。应用领域:数据库、大数据、数据集成和联合、软件工程、自然语言处理、Web和语义网、代理、人工智能、计算生命科学、教育、网络安全和机器人技术。
2019-09-17 cs.AI cs.LO cs.PL
Tuning Fuzzy Logic Programs with Symbolic Execution
模糊逻辑程序设计是一个不断发展的声明性范例,旨在将模糊逻辑集成到逻辑程序设计中。当指定一个模糊逻辑程序时,最困难的任务之一是确定每个规则的正确权重,以及最合适的模糊连接词和运算符。在本文中,我们介绍了一个符号扩展的模糊逻辑程序,其中一些参数可以是未知的,使用户可以很容易地看到他们可能的价值观的影响。此外,给定多个测试用例,可以自动计算这些参数的最合适的值。
2016-08-16 cs.LO cs.PL
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
Automated Termination Proofs for Logic Programs by Term Rewriting
RWTH Aachen(亚琛工业大学);TU Eindhoven(埃因霍温理工大学);University of Innsbruck(因斯布鲁克大学)
逻辑程序的可终止性分析有两种方法:“转换”法和“直接”法。直接方法直接在逻辑程序的基础上证明终止。转换方法将一个逻辑程序转换成一个项重写系统(TRS),然后分析所得到的TRS的终止。因此,转换方法使以前为TRS开发的所有方法也可用于逻辑程序。然而,大多数现有的转换的适用性是相当有限的,因为它们只能用于逻辑程序的某些子类。(Most它们中的一个仅限于模式良好的程序。)在本文中,我们改进这些转换,使它们成为适用于任何明确的逻辑程序。为了用TRS模拟逻辑程序的行为,我们稍微修改了重写的概念,允许无限项。我们表明,我们的转换结果TRS这确实是适合自动终止分析。与大多数其他逻辑程序的终止方法相比,我们的技术也适用于逻辑程序设计,而不需要发生检查,这是在实践中通常使用的。我们在终止证明程序AProVE中实现了我们的方法,并在大量示例中成功地对其进行了评估。
2008-09-01 cs.AI cs.LO cs.PL
On completeness of logic programs
程序正确性(在命令式和函数式编程中)在逻辑编程中分为正确性和完整性。完整性意味着一个程序产生了它的规范所要求的所有答案。很少有人致力于对完备性的推理。本文给出了定规划完备性的几个充分条件。我们还研究了在SLD树的某些修剪情况下(例如,由于使用切割)保持完整性。我们将逻辑编程视为一种声明性的范例,尽可能地从任何操作语义中抽象出来。我们认为,所提出的方法是足够简单的应用,可能在一个非正式的水平,在实际的Prolog编程。我们指出近似规格的重要性。
2014-11-11 cs.LO cs.PL
Proceedings 36th International Conference on Logic Programming (Technical Communications)
自1982年在马赛举行第一次会议以来,ICLP一直是展示逻辑编程研究的首要国际活动。在逻辑编程和相关领域的所有领域征求贡献,包括但不限于:-基础:语义学,形式主义,集合编程,非单调推理,知识表示。- 声明式编程:推理引擎,分析,类型和模式推理,部分求值,抽象解释,转换,验证,验证,建模,分析,测试,基于逻辑的领域特定语言,约束处理规则。- 相关范例和协同作用:归纳和协同归纳逻辑程序设计、约束逻辑程序设计、与SAT、SMT和CSP求解器的交互、用于类型推断和定理证明的逻辑编程技术、论证、概率逻辑程序设计、与面向对象和函数式编程的关系、描述逻辑、神经符号机器学习、混合深度学习和符号推理。- 实施情况:并发和分布,对象,协调,移动性,虚拟机,编译,高阶,类型系统,模块,约束处理规则,元编程,外部接口,用户界面。- 应用领域:数据库、大数据、数据集成和联合、软件工程、自然语言处理、Web和语义网、代理、人工智能、生物信息学、教育、计算生命科学、教育、网络安全和机器人技术。
2020-09-19 cs.AI cs.LO cs.PL
Predicate Specialization for Definitional Higher-order Logic Programs
高阶逻辑编程是传统逻辑编程的一个有趣的扩展,它允许谓词作为参数出现,并在谓词通常出现的地方使用变量。高阶特性确实是理想的,但另一方面,它们的支持通常也更昂贵。在本文中,我们提出了一个程序专业化技术的基础上,部分评估,可以适用于一个温和的,但有用的类高阶逻辑程序,并可以将它们转换为一阶程序,而无需引入额外的数据结构。由此产生的一阶程序可以由传统的逻辑编程解释器执行,并受益于其他可能可用的优化。我们提供了一个实施和实验结果,表明转换的效率。
2018-12-01 cs.LO cs.PL
Logic + control: On program construction and verification
本文提出了一个例子,形式化推理的语义Prolog程序的实际意义(SAT求解器的豪和国王)。该程序被视为一个带有附加控制的定子句逻辑程序。逻辑程序是通过逐步精化的方法构造的,并与其正确性和完整性证明携手并进。证明是声明性的--它们不引用任何操作语义。逻辑程序构造的每一步都遵循一种系统的方法来构造可证明正确和完整的程序。我们还证明了在最终的Prolog程序中保持了逻辑程序的正确性和完整性。此外,我们证明终止,发生检查自由和非挣扎。我们的例子展示了如何将处理“逻辑”和处理“控制”分开。大多数证明都可以在“逻辑”级别上完成,从任何操作语义中抽象出来。这个例子使用了近似的规格说明;它们在简化逻辑程序的推理中是至关重要的。它还表明,语义保持程序转换的范例可能是不够的。我们建议考虑转换保持正确性和完整性方面的近似规范。
2017-05-12 cs.LO cs.PL
Minimum Model Semantics for Extensional Higher-order Logic Programming with Negation
University of Athens(雅典大学);University of Szeged(塞格德大学)
可拓高阶逻辑程序设计是经典逻辑程序设计的推广。这种范式的一个重要特征是它保留了传统逻辑编程的所有众所周知的属性。在本文中,我们考虑在新的范式的背景下,否定的语义。利用非单调不动点理论的一些最新结果,我们证明了每一个带否定的高阶逻辑程序都有唯一的最小无穷值模型。通过这种方式,我们获得了第一个纯粹的模型论语义的否定在可拓高阶逻辑编程。使用我们的方法,我们解决了一个老的悖论,介绍了W。W. Wadge,以证明高阶逻辑编程的语义困难。
2014-05-15 cs.AI cs.LO cs.PL
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
VAEL: Bridging Variational Autoencoders and Probabilistic Logic Programming
University of Bologna(博洛尼亚大学);KU Leuven(鲁汶大学)
我们提出了VAEL,神经符号生成模型集成变分自编码器(VAE)与概率逻辑(L)编程的推理能力。除了标准的潜在子符号变量,我们的模型利用概率逻辑程序来定义一个进一步的结构化表示,这是用于逻辑推理。整个过程是端到端的差异化。一旦经过训练,VAEL可以通过(i)利用神经组件中编码的先前获得的知识以及(ii)在结构化潜在空间上利用新的逻辑程序来解决新的看不见的生成任务。我们的实验提供了支持的好处,这种神经符号积分的任务泛化和数据效率。据我们所知,这项工作是第一个提出一个通用的端到端框架集成概率逻辑编程到一个深生成模型。
2022-05-25 cs.LG cs.PL
Products of Weighted Logic Programs
Carnegie Mellon University(卡内基梅隆大学)
加权逻辑编程是自底向上逻辑编程的一种推广,是描述动态规划算法的一个非常合适的框架。在这种情况下,证明对应于算法的输出空间,例如通过图或语法推导的路径,并被赋予实值分数(通常被解释为概率),该分数取决于证明中使用的基本公理的实际权重。期望的输出是所有可能的证明的函数,例如得分之和或最佳得分。我们描述了乘积变换,它可以合并两个加权逻辑程序成一个新的。所得到的程序优化了来自原始程序的证明分数的乘积,构成了在机器学习中称为"专家的乘积"的评分函数。通过增加直观的约束边条件,我们证明了几个重要的动态规划算法可以通过将PRODUCT应用于加权逻辑程序而得到,这些加权逻辑程序对应于较简单的加权逻辑程序。此外,我们展示了如何计算的Kullback-Leibler分歧,信息理论的措施,可以解释使用产品。
2010-06-15 cs.AI cs.PL
The Limits of Horn Logic Programs
给定Horn逻辑程序序列$\{Π_n\}$,$\{Π_n\}$的极限$Π$是这样的子句集合,使得$Π$中的每个子句属于几乎每个$Π_n$,并且无限多个$Π_n$中的每个子句也属于$Π$.极限程序$Π$仍然是Horn,但可能是无限的。本文考虑给定Horn逻辑程序序列$\{Π_n\}$的极限的最小Herbrand模型是否等于每个逻辑程序$Π_n$的最小Herbrand模型的极限。本文证明了这一性质一般不成立,但如果Horn逻辑程序满足一个可语法检验且可由一类Horn逻辑程序满足的假设,则这一性质成立。因此,在此假设下,我们可以通过每个有限程序$Π_n$的最小Herbrand模型序列来逼近极限$Π$的最小Herbrand模型.我们还证明了,如果一个有限Horn逻辑程序满足这个假设,那么这个程序的最小Herbrand模型是递归的。最后,利用动力系统的稳定性概念,证明了这一假设是保证Horn逻辑程序不动点稳定的充分条件。
2002-02-07 cs.LO cs.PL
Pre-proceedings of the 26th International Workshop on Functional and Logic Programming (WFLP 2018)
本卷是第26届函数和逻辑编程国际研讨会(WFLP 2018)的预录。它是由程序委员会选出的在研讨会上发表的论文组成的。经过研讨会的讨论,项目委员会将选择一些论文邀请第二轮评审和选择的正式程序。
2018-10-01 cs.LO cs.PL
Informal proceedings of the 32nd International Symposium on Logic-Based Program Synthesis and Transformation (LOPSTR 2022)
本卷是第32届基于逻辑的程序合成和转换国际研讨会的非正式会议录(LOPSTR 2022),于2022年9月21日至23日举行,作为混合(混合)会议,(在格鲁吉亚第比利斯的Ivane Javakhishvili Tbilisi State University -TSU)和虚拟,并与第24届声明式编程原理与实践国际研讨会(PPDP 2022)共同举办,作为2022年计算逻辑秋季峰会(CLAS 2022)的一部分。
2022-07-29 cs.LO cs.PL
Defining Rough Sets by Extended Logic Programs
我们展示了如何明确的扩展逻辑程序可以用于定义和推理粗糙集。此外,粗糙集特定的查询语言和应答算法的概述。因此,我们不仅展示了一个可能的应用程序的次协调逻辑领域的粗糙集,因为我们也建立了粗糙集理论和逻辑编程之间的联系,使两个领域之间的专业知识转移。
2002-07-25 cs.LO cs.PL
An Assertion-Based Program Logic for Probabilistic Programs
概率程序的演绎验证研究已经考虑了基于期望的逻辑,其中前置条件和后置条件是状态上的实值函数,以及基于断言的逻辑,其中前置条件和后置条件是状态分布上的布尔谓词。这两种方法都发展了近40年,但今天它们有不同的地位。基于期望的系统已经成功地将许多复杂的案例研究形式化,而今天基于断言的系统具有更有限的表达能力,并且针对更简单的示例。我们目前Ellora,一个健全的和相对完整的断言为基础的程序逻辑,并证明其表现力通过验证几个经典的例子,随机算法使用的EasyCrypt证明助手的实现。Ellora为循环和对抗代码提供了新的证明规则,并支持比现有程序逻辑更丰富的断言。我们还表明,Ellora允许方便的推理复杂的概率概念,通过开发一个新的程序逻辑的概率独立性和分布规律,然后顺利地嵌入到Ellora。我们的工作表明,基于断言的方法并没有从根本上受到限制,并表明在基于断言的系统中,一些概念可能更容易推理。
2018-03-14 cs.LO cs.PL
A program logic for fresh name generation
我们给出了Pitts和Stark的ν-演算的程序逻辑,它是按值调用的简单类型λ-演算的扩展,具有生成新名称的机制。可以比较名字是否相等,从而产生具有细微可观察属性的程序。由生成和抽象之间的交互产生的隐藏名称通过类型上下文上的二阶量词逻辑地捕获。我们说明使用的逻辑推理著名的困难的情况下,从文献。
2021-03-12 cs.LO cs.PL