English
Related papers

Related papers: A Prolog Program for Bottom-up Evaluation

200 papers

The semantics and the recursive execution model of Prolog make it very natural to express language interpreters in form of AST (Abstract Syntax Tree) interpreters where the execution follows the tree representation of a program. An…

Programming Languages · Computer Science 2020-08-31 Philipp Körner , David Schneider , Michael Leuschel

Retrograde analysis reads programs from the end to the beginning: treat statements as constraints on prior states, propagate sets of states backward, and compare the reachable inputs with the intended specification. This tutorial condenses…

Software Engineering · Computer Science 2025-10-22 Aleksandar Perisic

This paper describes a simpler way for programmers to reason about the correctness of their code. The study of semantics of logic programs has shown strong links between the model theoretic semantics (truth and falsity of atoms in the…

Logic in Computer Science · Computer Science 2014-11-17 Lee Naish

Many forms of inductive logic programming (ILP) use \emph{metarules}, second-order Horn clauses, to define the structure of learnable programs and thus the hypothesis space. Deciding which metarules to use for a given learning task is a…

Machine Learning · Computer Science 2019-07-26 Andrew Cropper , Sophie Tourret

We argue that the implementation and verification of compilers for functional programming languages are greatly simplified by employing a higher-order representation of syntax known as Higher-Order Abstract Syntax or HOAS. The underlying…

Programming Languages · Computer Science 2017-02-14 Yuting Wang

Language models frequently produce plausible yet incorrect reasoning traces that are difficult to verify. We investigate fine-tuning models to use Prolog as an external symbolic reasoning tool, training Qwen2.5-3B-Instruct with Group…

Computation and Language · Computer Science 2026-04-21 Niklas Mellgren , Peter Schneider-Kamp , Lukas Galke Poech

We investigate representations of imperative programs as constrained Horn clauses. Starting from operational semantics transition rules, we proceed by writing interpreters as constrained Horn clause programs directly encoding the rules. We…

Programming Languages · Computer Science 2020-08-10 John P. Gallagher , Manuel Hermenegildo , Bishoksan Kafle , Maximiliano Klemen , Pedro López García , José Morales

We extend a technique called Compiling Control. The technique transforms coroutining logic programs into logic programs that, when executed under the standard left-to-right selection rule (and not using any delay features) have the same…

Programming Languages · Computer Science 2017-08-28 Vincent Nys , Danny De Schreye

To appear in Theory and Practice of Logic Programming (TPLP). Several Prolog interpreters are based on the Warren Abstract Machine (WAM), an elegant model to compile Prolog programs. In order to improve the performance several strategies…

Programming Languages · Computer Science 2014-05-13 George Souza Oliveira , Anderson Faustino da Silva

Control-flow refinement refers to program transformations whose purpose is to make implicit control-flow explicit, and is used in the context of program analysis to increase precision. Several techniques have been suggested for different…

Programming Languages · Computer Science 2019-08-01 Jesús J. Doménech , John P. Gallagher , Samir Genaim

A very desirable Datalog extension investigated by many researchers in the last thirty years consists in allowing the use of the basic SQL aggregates min, max, count and sum in recursive rules. In this paper, we propose a simple…

Databases · Computer Science 2017-07-24 Carlo Zaniolo , Mohan Yang , Matteo Interlandi , Ariyam Das , Alexander Shkapsky , Tyson Condie

Inductive logic programming is a type of machine learning in which logic programs are learned from examples. This learning typically occurs relative to some background knowledge provided as a logic program. This dissertation introduces…

Machine Learning · Computer Science 2021-12-24 Brad Hunter

Motivated by applications in automated verification of higher-order functional programs, we develop a notion of constrained Horn clauses in higher-order logic and a decision problem concerning their satisfiability. We show that, although…

Programming Languages · Computer Science 2017-08-02 Toby Cathcart Burn , C. -H. Luke Ong , Steven J. Ramsay

A systematic algebraic framework for composing and decomposing logic programs is currently missing, limiting our ability to analyze and construct programs in a modular way. In this paper, we introduce set-like operations for (propositional…

Logic in Computer Science · Computer Science 2026-05-06 Christian Antić

We consider approximating data structures with collections of the items that they contain. For examples, lists, binary trees, tuples, etc, can be approximated by sets or multisets of the items within them. Such approximations can be used to…

Logic in Computer Science · Computer Science 2007-08-17 Dale Miller

We show how automatic tools for the verification of linear and branching time properties of procedural, multi-threaded, and functional programs as well as program synthesis can be naturally and uniformly seen as solvers of constraints in…

Logic in Computer Science · Computer Science 2014-06-02 Andrey Rybalchenko

We report on work in progress on automatic procedures for proving properties of programs written in higher-order functional languages. Our approach encodes higher-order programs directly as first-order SMT problems over Horn clauses. It is…

Logic in Computer Science · Computer Science 2013-06-25 Nikolaj Bjorner , Ken McMillan , Andrey Rybalchenko

Metaphor is a pervasive feature of discourse and a powerful lens for examining cognition, emotion, and ideology. Large-scale analysis, however, has been constrained by the need for manual annotation due to the context-sensitive nature of…

Computation and Language · Computer Science 2025-10-02 Matteo Fuoli , Weihang Huang , Jeannette Littlemore , Sarah Turner , Ellen Wilding

Program synthesis is challenging largely because of the difficulty of search in a large space of programs. Human programmers routinely tackle the task of writing complex programs by writing sub-programs and then analyzing their intermediate…

Programming Languages · Computer Science 2023-10-31 Augustus Odena , Kensen Shi , David Bieber , Rishabh Singh , Charles Sutton , Hanjun Dai

We propose a special-purpose class of compression algorithms for efficient compression of Prolog programs. It is a dictionary-based compression method, specially designed for the compression of Prolog code, and therefore we name it PCA…

Programming Languages · Computer Science 2007-05-23 Alin Suciu , Kalman Pusztai