Description, Implementation, and Evaluation of a Generic Design for Tabled CLP
具有制表和约束的逻辑编程(TCLP,表格约束逻辑编程)已被证明比LP,CLP或LP +制表更具表达力,在某些情况下更有效。以前的设计TCLP系统没有充分利用蕴涵,以确定呼叫/应答包容,并没有提供一个简单的和良好的记录接口,以促进现有的制表系统中的约束求解器的集成。我们研究的作用,投影和蕴涵在终止,健全和完整的TCLP系统,并提出了设计和实验评估的Mod TCLP,一个框架,简化了额外的约束求解器的集成。Mod TCLP将约束求解器视为制表系统的客户端,这是通用的w.r.t.解决方案,只需要一个明确的接口,从后者。我们通过整合四个约束求解器来验证我们的设计:以前存在的用于差分约束的约束求解器,用C编写; Holzbaur的CLP(Q)和CLP(R)的标准版本,用Prolog编写;以及有限格上的方程的新约束求解器。我们使用上述约束求解器在几个基准测试中评估我们的框架的性能。Mod TCLP是在Ciao Prolog中开发的,Ciao Prolog是一个健壮、成熟的下一代Prolog系统。逻辑程序设计理论与实践(TPLP)
2018-09-15 cs.LO cs.PL
Fuzzy Logic in Narrow Sense with Hedges
Hanoi University of Mining and Geology(河内矿业地质大学)
经典逻辑有一个严重的局限性,因为它不能处理人类推理的大多数模式都陷入的不确定性和不确定性问题。为了在模糊、不精确和不确定的情况下为人类的知识表示和推理提供基础,模糊逻辑必须具有处理语言模糊限制语的能力,而语言模糊限制语在模糊谓词的修改中起着非常重要的作用。本文用Novak等人提出的分级语法对狭义模糊逻辑进行了扩展,有很多对冲连接词。在一种情况下,每个对冲没有任何对偶对冲。在另一种情况下,每个对冲都可以有自己的双重对冲。所得到的逻辑也具有Pavelka式的完备性
2016-08-29 cs.AI cs.LO
An Assertion language for slicing Constraint Logic Languages
约束逻辑程序设计(CLP)是一种结合两种声明性范式的语言方案:约束求解和逻辑程序设计。并发约束编程(CCP)是一种声明式的并发模型,其中代理通过告诉和询问共享存储中的约束进行交互。在以前的论文中,我们开发了一个动态切片CCP的框架,用户首先确定(部分)计算是错误的。然后,她标记(选择)与她想要更深入研究的数据(约束)和过程相对应的最终状态的某些部分。切片的自动过程开始,部分计算通过去除不相关的信息而被“净化”。在本文中,我们给出了两个主要贡献。首先,我们将框架扩展到CLP,从而推广了以前的工作。第二,我们提供了一个断言语言,适用于CCP和CLP,它允许用户指定她的程序中的计算的一些属性。如果计算中的状态不满足断言,则识别出一些“错误”信息,并且可以开始自动切片过程。通过这种方式,我们向切片过程自动化迈进了一步。我们表明,我们的框架可以与以前的半自动的,给用户更多的选择和灵活性。我们的例子和实验表明,我们的方法的有用性。
2018-11-30 cs.LO
Integrating Interval Constraints into Logic Programming
University of Victoria(维多利亚大学)
本文提出CLP/NCSP新子方案,通过将区间约束作为约束满足问题集成到逻辑编程中,利用浮点硬件高效求解或证明数千个CSP的不可解性。
2010-02-07 cs.LO cs.NA cs.PL
Fuzzy Linguistic Logic Programming and its Applications
本文介绍了模糊语言逻辑规划,它是由P. Vojtas提出的模糊逻辑规划与模糊对冲代数的结合,以便于对人类知识用自然语言表示和推理。在模糊语言逻辑编程中,真值是语言值,例如,VeryTrue、VeryProbablyTrue和LittleFalse,取自语言真值变量的模糊限制语代数,语言模糊限制语(修饰语)可以用作公式中的一元连接词。这是因为人类的推理主要是根据语言术语而不是数字进行的,而语言模糊限制语通常用于自然语言中以表达不同程度的强调。该文件提出:(1)模糊语言逻辑程序设计语言;(2)根据Herbrand解释和模型的声明语义;(3)直接操纵语言项计算查询真值下界并证明其可靠性的过程语义;(4)逻辑程序的不动点语义,并在此基础上证明过程语义的完备性;(v)模糊语言逻辑程序设计的几种应用;以及(vi)实现一个执行模糊语言逻辑程序的系统的想法。
2009-04-03 cs.LO
Multi-valued Action Languages in CLP(FD)
Università di Udine(乌迪内大学);Università di Perugia(佩鲁贾大学);New Mexico State University(新墨西哥州立大学)
行动描述语言,如A和B,是形式化规划域和规划问题实例的表达工具。本文首先提出了一种方法来编码一个动作语言(条件效应和静态因果律),B的一个轻微的变化,使用有限域上的约束逻辑编程。然后将该方法推广到将约束的使用提高到动作语言本身的水平。一个原型实现已经开发,并提出和讨论的初步结果。逻辑程序设计理论与实践(Theory and Practice of Logic Programming,TPLP)
2009-12-15 cs.AI 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
Integrating Cardinality Constraints into Constraint Logic Programming with Sets
关于有限集和基数的形式化推理是许多应用的重要工具,包括软件验证,其中经常需要推理给定数据结构的大小,而不仅仅是其元素是什么。约束逻辑编程工具{log}提供了一个判定过程,用于判定涉及非常一般形式的有限集的公式的可满足性,而无需基数。在本文中,我们适应和集成的决策过程的理论,有限集的基数到{log}。所提出的求解器被证明是一个决策过程,其公式。此外,新的CLP实例作为{log}工具的一部分实现。反过来,该实现使用Howe和King的Prolog SAT求解器和Prolog的CLP(Q)库作为整数线性规划求解器。基于+250真实验证条件的经验评估表明,它可以在实践中是有用的。
2021-10-05 cs.LO
Applying Constraint Logic Programming to SQL Semantic Analysis
Complutense University of Madrid(马德里康普顿斯大学)
本文提出了使用约束逻辑编程(CLP)的SQL查询建模在一个数据独立的抽象层,专注于一些语义属性,在这样的查询信号可能的错误。首先,我们定义一个从SQL到Datasheet的转换,以及从Datasheet到CLP的转换,这样解决这个CLP程序将给出关于不一致性、重言式和可能的简化的信息。我们使用不同的约束域映射到SQL类型,并建议他们合作,以提高准确性。我们的方法利用演绎系统,包括SQL和数据库,我们提出了一个实现在这个系统中,目前正在课堂上进行测试,显示其优势和差异相对于其他方法,以及一些性能数据。本文件正在考虑被TPLP接受。
2019-07-25 cs.AI cs.DB cs.LO
{log}: From a Constraint Logic Programming Language to a Formal Verification Tool
CIFASIS-CONICET(国家科学和技术研究委员会联邦应用科学研究所)
{log}通过扩展成为形式验证环境,实现了从约束逻辑编程语言到自动证明系统的无缝集成。
2026-03-12 cs.LO
Concolic Testing in CLP
Concolic测试是一种基于具体执行和符号执行相结合的流行软件验证技术。它的主要重点是发现bug和生成测试用例,目的是最大限度地提高代码覆盖率。以前的逻辑编程中的concolic测试方法是不健全的,因为它只处理正约束(通过替换),但不能表示负约束。在本文中,我们提出了一个新的框架concolic测试的CLP程序,概括了以前的技术。在CLP设置中,可以以自然的方式表示正约束和负约束,从而产生一种合理且(潜在地)更有效的技术。定义验证和测试技术CLP程序越来越相关,因为这个框架正在成为流行的中间表示,以分析在其他编程范式编写的程序。
2020-08-05 cs.LO cs.PL cs.SE
A Unifying Framework for Semiring-Based Constraint Logic Programming With Negation (full version)
Open Universiteit(开放大学);University of Cape Town(开普敦大学)
本文提出一个基于半环的统一框架,将带否定的约束逻辑编程与模糊、不确定性等扩展相结合,并利用近似不动点理论给出语义分析。
2025-07-21 cs.AI cs.LO
Building Information Modeling Using Constraint Logic Programming
建筑信息建模(BIM)生成建筑物的三维模型,将几何信息与广泛的属性相结合。BIM正在缓慢但不可避免地彻底改变建筑,工程和建筑(AEC)行业。建筑物需要符合有关稳定性、安全性和环境影响的法规。手动合规性检查是繁琐且容易出错的,并且仅在构建时发现的缺陷会导致巨大的额外成本和延迟。有几种工具可以检查BIM模型是否符合规则/指南。例如,新加坡的CORENET电子提交系统检查消防安全。但是,由于当前BIM交换格式仅包含建筑对象的基本信息,因此需要单独的ad-hoc模型预处理来确定,例如,疏散路线此外,如果可能的话,它们在调整现有的固有规则和/或增加新的规则(以适应不仅在国家之间而且在同一城市的不同地区之间可能不同的建筑法规)方面面临困难。我们建议使用基于逻辑的可执行形式主义(CLP和约束ASP)耦合BIM模型与先进的知识表示和推理能力。以前的经验表明,这种形式主义可以用来统一捕获和推理知识(包括歧义)在各种各样的领域。此外,在设计工具中加入检查,可以确保模型在每一步都符合规则。这也可以防止错误的设计必须(部分)重做,这也是昂贵和繁重的。为了验证我们的建议,我们在CLP(Q/R)和ASP的约束下实现了一个初步的推理器,并使用几个BIM模型对其进行了评估。逻辑程序设计理论与实践(TPLP)
2022-05-17 cs.LO
A Theoretical Study of (Full) Tabled Constraint Logic Programming
表格约束逻辑编程(TCLP,tableed constraint logic programming)已经被证明比LP、CLP或LP with tabling更有表现力,在某些情况下更有效。在本文中,我们提供了关于语义,正确性,完整性和终止的自顶向下执行策略的完整TCLP,即,TCLP的特点是在呼叫和应答中进行蕴涵检查。我们提出了一个自顶向下的语义TCLP,并表明它是等价的不动点语义。我们研究了一个程序生成的约束如何有效地影响终止,即使是约束类,约束不紧,概括以前的结果。我们还介绍了不同的约束投影的变体如何影响TCLP实现的正确性和完整性。所有提出的特点都实现(或可以实验)在Mod TCLP,一个模块化的框架表约束逻辑编程,Ciao Prolog逻辑编程系统的一部分。
2020-09-28 cs.LO
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
Large Language Models for Interpretable Mental Health Diagnosis
University of Southern California(南加州大学)
本研究提出结合大语言模型与约束逻辑编程的可解释心理健康诊断CDSS,经专家修正逻辑程序保障准确性与可解释性,实验验证了专家干预的必要性及混合方法的伦理安全性。
2025-02-21 cs.AI cs.LO
Towards Constraint Logic Programming over Strings for Test Data Generation
为了正确地测试软件,需要一定质量的测试数据。然而,有用的测试数据通常是不可用的:现有的或手工制作的数据可能不够多样化,无法实现所需的测试用例。此外,由于安全或隐私问题或其他法规,可能会禁止使用生产数据。同时,用于测试数据生成的现有工具通常是有限的。在本文中,我们评估在何种程度上约束逻辑编程可以用来生成测试数据,特别是字符串集中。要做到这一点,我们介绍了一个原型CLP求解器字符串约束。作为案例研究,我们使用它来生成IBAN号码和日期。
2019-08-27 cs.LO cs.SE
Analysis and Transformation of Constrained Horn Clauses for Program Verification
本文综述了最近的工作应用分析和转换技术,起源于约束逻辑编程(CLP)领域的问题,验证软件系统。我们提出了基于专业化的技术翻译验证问题,为不同的程序设计语言,并在一般的软件系统,到满足性问题的约束霍恩条款(CHCs),一个术语,已成为流行的验证领域,指CLP程序。然后,我们描述了静态分析技术的CHCs,可用于推断相关的程序属性,如循环不变。我们还概述了一些转换技术的基础上专业化和折叠/展开规则,这是有用的,以提高CHC可满足性工具的有效性。最后,我们讨论了应用这些技术的未来发展。
2021-08-02 cs.LO cs.PL
Constraint Answer Set Programming without Grounding
带约束的扩展ASP(CASP)增强了其表现力和性能。这种扩展并不简单,因为在大多数ASP系统中存在的基础阶段,删除了变量和它们之间的链接,并且还导致了程序大小的组合爆炸。已经设计了几种克服这个问题的方法:限制约束域(例如,离散的而不是密集的),或者可以返回的模型的类型(或数量)。在本文中,我们建议将限制到S(ASP),一个目标导向的,自上而下的执行模型,实现ASP,同时保留逻辑变量在执行过程中和答案集。生成的模型s(CASP)可以约束变量,这些变量与CLP中一样,在执行期间和答案集中保留。s(CASP)继承和推广了s(ASP)的执行模型,是参数化的.约束求解器。我们描述了这种新的执行模型,并通过几个例子显示增强的表现力的s(CASP)w.r.t. ASP、CLP和其他CASP系统。我们还报告了改进的性能w.r.t.其他非常成熟,高度优化的ASP系统中的一些基准。这篇论文正在考虑发表在《逻辑程序设计理论与实践》(TPLP)上。
2018-05-31 cs.LO cs.PL
Constraint Logic Programming over Infinite Domains with an Application to Proof
我们提出了一个基于CLP(FD)的约束求解器,能够处理无界域。它基于约束传播,如果所有其他方法都失败,则诉诸枚举。一个重要的方面是检测枚举何时完成,以及这是否对结果的可靠性有影响。我们提出了一种技术,保证健全的方式如下:如果约束求解器找到一个解决方案,它保证是正确的;如果约束求解器未能找到一个解决方案,它可以返回的结果“绝对假”的情况下,它知道枚举是详尽的,或“未知”的情况下,它被中止。该技术可以处理嵌套的全称量词和存在量词。它可以很容易地扩展到集合解析和其他引入新量化变量的运算符。我们展示了数据验证和证明中的应用。
2017-01-03 cs.LO cs.PL
Anti-unification in Constraint Logic Programming
反统一是指将两个(或更多)目标概括为一个单一的、更一般的目标的过程,这个目标抓住了所有初始目标所共有的一些结构。一般来说,人们通常对计算通常被称为最具体的概括感兴趣,这是一个概括,捕获最大数量的共享结构。在这项工作中,我们解决了CLP中的反统一问题,其中目标可以被视为无序的原子和/或约束集。我们表明,虽然一个最具体的推广的概念可以很容易地定义在这种情况下,计算它成为一个NP完全问题。随后,我们介绍了一个泛化算法,计算一个定义良好的抽象,其计算可以绑定到一个多项式的执行时间。初步实验表明,即使是一个天真的实现我们的算法产生可接受的概括,在一个有效的方式。正在考虑接受TPLP。
2019-07-24 cs.CC cs.LO
Enhanced Filtering Algorithms for the Euclidean Traveling Salesperson Problem and its variants in Constraint Logic Programming
本研究针对约束逻辑编程,提出利用几何信息的欧几里得旅行商问题增强过滤算法,可扩展至其变体,实验验证了该方法的计算优势。
2026-08-12 cs.AI cs.LO
A Generic Scheme for Qualified Logic Programming
逻辑程序设计中的不确定性已经研究了大约25年,发表了关于语义和不同应用的各种方法的论文。这份报告的目的是作为第一步的调查合格的计算约束功能逻辑编程,包括不确定的计算作为一个特殊的情况。我们修改了早期的建议,即范埃姆登的定量逻辑编程,我们在两个方面改进它。首先,我们将van Emden的QLP推广到由任意给定的限定域D参数化的一般模式QLP(D),限定域D必须是满足某些自然公理的格。我们为D提供了几个有趣的实例,其中之一对应于van Emden的QLP。其次,我们推广范埃姆登的结果提供更强的,关于语义和目标求解。我们提出了D上的限定SLD分解,这是QLP(D)的一个可靠的和强完整的目标求解过程,它适用于开放目标,并且可以在任何能够处理D上的限定约束的约束域CD上使用CLP技术有效地实现。我们已经在CFLP系统TOY上开发了QLP(D)方案(包括van Emden的QLP)的一些实例的原型实现。
2010-08-23 cs.LO cs.PL
Hybrid Rules with Well-Founded Semantics
Institute of Computer Science, Polish Academy of Sciences(波兰科学院计算机科学研究所);Linköping University(林雪平大学)
一个通用的框架,提出了集成的规则和外部一阶理论。它以一般逻辑程序的良基语义为基础,并受到约束逻辑程序设计(CLP)和逻辑程序的构造性否定思想的启发。混合规则是在主体中扩展了约束的普通子句;约束是外部理论语言中的某些公式。混合程序是一组混合规则和一个外部理论的组合.通过指定外部理论的类和约束的类来获得框架的所有权。一个例子是集成(非析取)数据库与本体形式化为描述逻辑。本文定义了混合程序的声明语义和目标驱动的形式化操作语义。后者可以看作是SLS-归结的推广。它提供了一个基础的混合实现结合Prolog与约束求解器。证明了操作语义的合理性。给出了声明语义可判定性和操作语义完备性的充分条件。
2009-06-20 cs.AI cs.LO cs.PL
Solving Functional Constraints by Variable Substitution
Texas Tech University(德克萨斯理工大学);National University of Singapore(新加坡国立大学)
函数约束和双函数约束是约束程序设计(CP)系统中的一个重要约束类,特别是对于约束逻辑程序设计(CLP)系统。具有有限域约束的CP系统通常采用基于CSP的求解器,其使用局部一致性,例如,弧一致性。我们引入了一种新的方法,而不是基于变量替换。我们得到有效的算法,减少系统涉及功能和双功能的约束以及其他非功能性约束。它还全局解决任何CSP,其中存在一个变量,使得任何其他变量都可以通过一系列功能约束从它到达。我们在随机问题上的实验表明,变量消除可以显着提高求解函数约束问题的效率。
2010-06-16 cs.AI cs.LO cs.PL
Strategies in PRholog
PRholog是逻辑编程的一个实验性扩展,它结合了Prolog和Rholog演算。规则对套期保值执行不确定性转换。在回溯时,可以探索递归的几个结果。策略以声明的方式提供对规则应用程序的控制。使用策略组合子,用户可以从简单的策略构造更复杂的策略。与四种不同类型的变量匹配提供了在执行期间选择(子)项的灵活机制。我们给出了一个概述与PRholog的策略编程,并演示如何重写策略可以表示。
2010-01-25 cs.LO cs.PL cs.SE