Productive corecursion in logic programming

被引:7
|
作者
Komendantskaya, Ekaterina [1 ]
Li, Yue [1 ]
机构
[1] Heriot Watt Univ, Edinburgh, Midlothian, Scotland
基金
英国工程与自然科学研究理事会;
关键词
Horn clauses; (co) recursion; (co) induction; infinite term trees; productivity; SEMANTICS;
D O I
10.1017/S147106841700028X
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Logic Programming is a Turing complete language. As a consequence, designing algorithms that decide termination and non-termination of programs or decide inductive/ coinductive soundness of formulae is a challenging task. For example, the existing state-of-the-art algorithms can only semi-decide coinductive soundness of queries in logic programming for regular formulae. Another, less famous, but equally fundamental and important undecidable property is productivity. If a derivation is infinite and coinductively sound, we may ask whether the computed answer it determines actually computes an infinite formula. If it does, the infinite computation is productive. This intuition was first expressed under the name of computations at infinity in the 80s. In modern days of the Internet and stream processing, its importance lies in connection to infinite data structure processing. Recently, an algorithm was presented that semi-decides a weaker property -of productivity of logic programs. A logic program is productive if it can give rise to productive derivations. In this paper, we strengthen these recent results. We propose a method that semi-decides productivity of individual derivations for regular formulae. Thus, we at last give an algorithmic counterpart to the notion of productivity of derivations in logic programming. This is the first algorithmic solution to the problem since it was raised more than 30 years ago. We also present an implementation of this algorithm.
引用
收藏
页码:906 / 923
页数:18
相关论文
共 50 条
  • [1] Mechanizing coinduction and corecursion in higher-order logic
    Paulson, LC
    JOURNAL OF LOGIC AND COMPUTATION, 1997, 7 (02) : 175 - 204
  • [2] Recursion and corecursion have the same equational logic
    Moss, LS
    THEORETICAL COMPUTER SCIENCE, 2003, 294 (1-2) : 233 - 267
  • [3] A Productivity Checker for Logic Programming
    Komendantskaya, Ekaterina
    Johann, Patricia
    Schmidt, Martin
    LOGIC-BASED PROGRAM SYNTHESIS AND TRANSFORMATION, LOPSTR 2016, 2017, 10184 : 168 - 186
  • [4] Foundational Extensible Corecursion A Proof Assistant Perspective
    Blanchette, Jasmin Christian
    Popescu, Andrei
    Traytel, Dmitriy
    PROCEEDINGS OF THE 20TH ACM SIGPLAN INTERNATIONAL CONFERENCE ON FUNCTIONAL PROGRAMMING (ICFP'15), 2015, : 192 - 204
  • [5] Foundational Extensible Corecursion A Proof Assistant Perspective
    Blanchette, Jasmin Christian
    Popescu, Andrei
    Traytel, Dmitriy
    ACM SIGPLAN NOTICES, 2015, 50 (09) : 192 - 204
  • [6] Programming in logic without logic programming
    Kowalski, Robert
    Sadri, Fariba
    THEORY AND PRACTICE OF LOGIC PROGRAMMING, 2016, 16 : 269 - 295
  • [7] Flexible coinductive logic programming
    DAGNINO, F. R. A. N. C. E. S. C. O.
    ANCONA, D. A. V. I. D. E.
    ZUCCA, E. L. E. N. A.
    THEORY AND PRACTICE OF LOGIC PROGRAMMING, 2020, 20 (06) : 818 - 833
  • [8] Corecursion Up-to via Causal Transformations
    Pous, Damien
    Rot, Jurriaan
    Turkenburg, Ruben
    COALGEBRAIC METHODS IN COMPUTER SCIENCE (CMCS 2022), 2022, 13225 : 133 - 154
  • [9] Exploiting Parallelism in Coalgebraic Logic Programming
    Komendantskaya, Ekaterina
    Schmidt, Martin
    Heras, Jonathan
    ELECTRONIC NOTES IN THEORETICAL COMPUTER SCIENCE, 2014, 303 (303) : 121 - 148
  • [10] Using Structural Recursion for Corecursion
    Bertot, Yves
    Komendantskaya, Ekaterina
    TYPES FOR PROOFS AND PROGRAMS, 2009, 5497 : 220 - +