Non-Termination Inference of Logic Programs
Etienne Payet, Fred Mesnard
Abstract
We present a static analysis technique for non-termination inference of logic programs. Our framework relies on an extension of the subsumption test, where some specific argument positions can be instantiated while others are generalized. We give syntactic criteria to statically identify such argument positions from the text of a program. Atomic left looping queries are generated bottom-up from selected subsets of the binary unfoldings of the program of interest. We propose a set of correct algorithms for automating the approach. Then, non-termination inference is tailored to attempt proofs of optimality of left termination conditions computed by a termination inference tool. An experimental evaluation is reported. When termination and non-termination analysis produce complementary results for a logic procedure, then with respect to the leftmost selection rule and the language used to describe sets of atomic queries, each analysis is optimal and together, they induce a characterization of the operational behavior of the logic procedure.
Create a lesson
Related papers
OpenMQPI: An MLIR-based Pipeline to Offload Quantum Circuits via OpenMP
Ercüment Kaya, Ekin Devim Şahinkaya, Minh Chung et al.
Compositional Information Geometry of Probabilistic Programs
Jacek Karwowski, Frank Nielsen, Sam Staton
Scenario Proofs for Verification of Distributed Protocols
Zhendong Ang, George Pîrlea, Umang Mathur
Contravariant Universe Subtyping, Formalized, Mechanized
Shengyi Jiang, Jason Z. S. Hu
Mechanising Denotational Semantics in Agda
Peter D. Mosses, Jesper Cockx, Bernhard Reus
(Implicitly) Characterizing Probabilistic Polynomial Time as Used in Cryptography
Ugo Dal Lago, Giulia Giusti