About
204
Publications
24,282
Reads
How we measure 'reads'
A 'read' is counted each time someone views a publication summary (such as the title, abstract, and list of authors), clicks on a figure, or views or downloads the full-text. Learn more
7,442
Citations
Publications
Publications (204)
Dual Horn clauses mirror key properties of Horn clauses. This paper explores the ``other side of the looking glass'' to reveal some expected and unexpected symmetries and their practical uses. We revisit Dual Horn clauses as enablers of a form of constructive negation that supports goal-driven forward reasoning and is valid both intuitionistically...
We automate deep step-by step reasoning in an LLM dialog thread by recursively exploring alternatives (OR-nodes) and expanding details (AND-nodes) up to a given depth. Starting from a single succinct task-specific initiator we steer the automated dialog thread to stay focussed on the task by synthesizing a prompt that summarizes the depth-first ste...
With help of a compact Prolog-based theorem prover for Intuitionistic Propositional Logic, we synthesize minimal assumptions under which a given formula formula becomes a theorem. After applying our synthesis algorithm to cover basic abductive reasoning mechanisms, we synthesize conjunctions of literals that mimic rows of truth tables in classical...
With help of a compact Prolog-based theorem prover for Intuitionistic Propositional Logic, we synthesize minimal assumptions under which a given formula formula becomes a theorem. After applying our synthesis algorithm to cover basic abductive reasoning mechanisms, we synthesize conjunctions of literals that mimic rows of truth tables in classical...
Today’s deep learning dominates the field of natural language processing (NLP) with text graph-based approaches being another promising approach. However, both have inherent weaknesses. We present our system called DocTalk that brings together a model that combines the strength of the two approaches. DocTalk’s symbiotic model widens its application...
We propose a mechanism for automating discovery of definitions, that, when added to a logic system for which we have a theorem prover, extends it to support an embedding of a new logic system into it. As a result, the synthesized definitions, when added to the prover, implement a prover for the new logic. As an instance of the proposed mechanism, w...
We describe a family of program transformations that compile a Horn Clause program into equivalent programs of a simpler and more regular structure.
On top of a neural network-based dependency parser and a graph-based natural language processing module, we design a Prolog-based dialog engine that explores interactively a ranked fact database extracted from a text document. We reorganize dependency graphs to focus on the most relevant content elements of a sentence and integrate sentence identif...
The problem we want to solve is how to generate all theorems of a given size in the implicational fragment of propositional intuitionistic linear logic. We start by filtering for linearity the proof terms associated by our Prolog-based theorem prover for Implicational Intuitionistic Logic. This works, but using for each formula a PSPACE-complete al...
The problem we want to solve is how to generate all theorems of a given size in the implications fragment of propositional intuitionistic linear logic. We start by filtering for linearity the proof terms associated by our Prolog-based theorem prover for Implicational Intuitionistic Logic. This works, but using for each formula a PSPACE-complete alg...
On top of a neural network-based dependency parser and a graph-based natural language processing module we design a Prolog-based dialog engine that explores interactively a ranked fact database extracted from a text document. We reorganize dependency graphs to focus on the most relevant content elements of a sentence and integrate sentence identifi...
On top of a neural network-based dependency parser and a graph-based natural language processing module we design a Prolog-based dialog engine that explores interactively a ranked fact database extracted from a text document. We reorganize dependency graphs to focus on the most relevant content elements of a sentence, integrate sentence identifiers...
We develop combinatorial test generation algorithms for progressively more powerful theorem provers, covering formula languages ranging from the implicational fragment of intuitionistic logic to full intuitionistic propositional logic. Our algorithms support exhaustive and random generators for formulas of these logics. To provide known-to-be-prova...
We build a bridge between neural network-based machine learning and graph-based natural language processing and introduce a unified approach to keyphrase, summary and relation extraction by aggregating dependency graphs from links provided by a deep-learning based dependency parser. We reorganize dependency graphs to focus on the most relevant cont...
In recent years, stream processing has become a prominent approach for incrementally handling large amounts of data, with special support and libraries in many programming languages. Unfortunately, support in Prolog has so far been lacking and most existing approaches are ad-hoc. To remedy this situation, we present lazy stream generators as a unif...
We derive a Prolog theorem prover for an Intuitionistic Epistemic Logic by starting from the sequent calculus {\bf G4IP} that we extend with operator definitions providing an embedding in intuitionistic propositional logic ({\bf IPC}). With help of a candidate definition formula generator, we discover epistemic operators for which axioms and theore...
In recent years, stream processing has become a prominent approach for incrementally handling large amounts of data, with special support and libraries in many programming languages. Unfortunately, support in Prolog has so far been lacking and most existing approaches are ad-hoc. To remedy this situation, we present {\em lazy stream generators} as...
Uniquely closable skeletons of lambda terms are Motzkin-trees that predetermine the unique closed lambda term that can be obtained by labeling their leaves with de Bruijn indices. Likewise, uniquely typable skeletons of closed lambda terms predetermine the unique simply-typed lambda term that can be obtained by labeling their leaves with de Bruijn...
This special issue of Theory and Practice of Logic Programming (TPLP) contains the regular papers accepted for presentation at the 34-th International Conference on Logic Programming (ICLP 2018), held in Oxford, United Kingdom, from July 14th to July 17th, 2018.
From a declarative variant of Rémy's algorithm for uniform random generation of binary trees, we derive a generalization to term algebras of an arbitrary signature. With trees seen as sets of edges connecting vertices labeled with logic variables, we use Prolog's multiple-answer generation mechanism to derive a generic algorithm that counts terms o...
Uniquely closable skeletons of lambda terms are Motzkin-trees that predetermine the unique closed lambda term that can be obtained by labeling their leaves with de Bruijn indices. Likewise, uniquely typable skeletons of closed lambda terms predetermine the unique simply-typed lambda term that can be obtained by labeling their leaves with de Bruijn...
Contrary to several other families of lambda terms, no closed formula or generating function is known and none of the sophisticated techniques devised in analytic combinatorics can currently help with counting or generating the set of simply-typed closed lambda terms of a given size. Moreover, their asymptotic scarcity among the set of closed lambd...
Simply-typed lambda terms are often used in the internal language of compilers and proof assistants, for which generation of large, uniformly distributed random terms is instrumental for testing correctness and scalability. Recently, Boltzmann samplers have enabled uniform random generation of large terms belonging to several families of combinator...
A natural approach to software quality assurance consists in writing unit tests securing programmer-declared code invariants. Throughout the literature a great body of work has been devoted to tools and techniques automating this labour-intensive process. A prominent example is the successful use of randomness, in particular random typeable $\lambd...
A natural approach to software quality assurance consists in writing unit tests securing programmer-declared code invariants. Throughout the literature a great body of work has been devoted to tools and techniques automating this labour-intensive process. A prominent example is the successful use of randomness, in particular random typeable $\lambd...
Contrary to several other families of lambda terms, no closed formula or generating function is known and none of the sophisticated techniques devised in analytic combinatorics can currently help with counting or generating the set of {\em simply-typed closed lambda terms} of a given size. Moreover, their asymptotic scarcity among the set of closed...
Questioning has been shown to improve learning outcomes, and automatic question generation can greatly facilitate the inclusion of questions in learning technologies such as intelligent tutoring systems. The majority of prior QG systems use parsing software and transformation algorithms to create questions. In contrast, the approach described here...
Text summarization is a challenging task. Maintaining linguistic quality, optimizing both compression and retention, all while avoiding redundancy and preserving the substance of a text is a difficult process. Equally difficult is the task of evaluating such summaries. Interestingly, a summary generated from the same document can be different when...
We describe arithmetic algorithms on a canonical number representation based on the Catalan family of combinatorial objects specified as a Haskell type class. Our algorithms work on a generic representation that we illustrate on instances members of the Catalan family, like ordered binary and multiway trees. We validate the correctness of our algor...
We describe a size-proportionate bijection between lambda terms in a compressed de Bruijn notation and the Catalan family of combinatorial objects implemented as a Haskell type class, that has as instances binary trees and multiway-trees with empty leaves, as well as standard bitstring-represented natural numbers. By building on previous work that...
With sound unification, Definite Clause Grammars and compact expression of
combinatorial generation algorithms, logic programming is shown to conveniently
host a declarative playground where interesting properties and behaviors emerge
from the interaction of heterogenous but deeply connected computational
objects.
Compact combinatorial generation a...
A uniform representation, as binary trees with empty leaves, is given to expressions built with Rosser's X-combinator, natural numbers, lambda terms and simple types. Type inference, normalization of combinator expressions and lambda terms in de Bruijn notation, ranking/unranking algorithms and tree-based natural numbers are described as a literate...
We introduce a compressed de Bruijn representation of lambda terms and define its bijections to standard representations. Our compressed terms facilitate derivation of size-proportionate ranking and unranking algorithms of lambda terms and their inferred simple types. We specify our algorithms as a literate Prolog program.
We introduce a compressed de Bruijn representation of lambda terms and define its bijections to standard representations. Compact combinatorial generation algorithms are given for several families of lambda terms, including open, closed, simply typed and linear terms as well as type inference and normal order reduction algorithms. We specify our al...
We propose an unsupervised model to extract two types of summaries (positive, and negative) per document based on sentiment polarity. Our model builds a weighted polar digraph from the text, then evolves recursively until some desired properties converge. It can be seen as an enhanced variant of TextRank type algorithms working with non-polar text...
We describe a Prolog-based combined lambda term generator and type-inferrer for closed well-typed terms of a given size, in de Bruijn notation. By taking advantage of Prolog's unique bidirectional execution model and sound unification algorithm, our generator can build "customized" closed terms of a given type. This relational view of terms and the...
We study arithmetic properties of a new tree-based canonical number representation, recursively run-length compressed natural numbers, defined by applying recursively a run-length encoding of their binary digits.
We design arithmetic operations with recursively run-length compressed natural numbers that work a block of digits at a time and are limi...
Our tree-based hereditarily binary numbers apply recursively a run-length compression mechanism. They enable performing arithmetic computations symbolically and lift tractability of computations to be limited by the representation size of their operands rather than by their bitsizes.
We apply them to derive compact representations for "structurally...
We study novel arithmetic algorithms on a canonical number representation
based on the Catalan family of combinatorial objects.
Our algorithms work on a generic representation that we illustrate on
instances like ordered binary and multiway trees, balanced parentheses
languages as well as the usual bitstring-based natural numbers seen through the
s...
Unification of logic variables instantly connects present and future
observations of their value, independently of their location in the data areas
of the runtime system. The paper extends this property to "interclausal logic
variables", an easy to implement Prolog extension that supports instant global
information exchanges without dynamic databas...
Factorization results in multisets of primes and this mapping can be turned into a bijection between multisets of natural numbers and natural numbers. At the same time, simpler and more efficient bijections exist that share some interesting properties with the bijection derived from factorization.
This paper describes mechanisms to emulate properti...
Automated text summarization can be applied as an assistive tool for people with vision defficiency as well as with language understanding or attention deficit disorders. In this paper, we introduce an unsupervised graph based ranking model for text summarization. Our model builds a graph by collecting words, and their lexical relationships from th...
We study novel arithmetic algorithms on a canonical number representation based on the Catalan family of combinatorial objects.
For numbers corresponding to Catalan objects of low structural complexity our algorithms provide super-exponential gains while their average case complexity is within constant factors of their traditional counterparts.
The tree based representation described in this paper, hereditarily binary numbers, applies recursively a run-length compression mechanism that enables computations limited by the structural complexity of their operands rather than by their bitsizes. While within constant factors from their traditional counterparts for their average and worst case...
We present a new set of algorithms for performing arithmetic computations on the set of natural numbers, represented as ordered rooted binary trees. We show formally that these algorithms are correct and discuss their time and space complexity in comparison to traditional arithmetic operations on bitstrings.
Our binary tree algorithms follow the st...
We explore two general mechanisms for producing pairing bijections (bijective functions defined from N2 → N). The first mechanism, using n-adic valuations results in parameterized algorithms generating a countable family of distinct pairing bijections. The second mechanism, using characteristic functions of subsets of N provides 2N distinct pairing...
The tree based representation described in this paper, hereditarily binary
numbers, applies recursively a run-length compression mechanism that enables
computations limited by the structural complexity of their operands rather than
by their bitsizes. While within constant factors from their traditional
counterparts for their worst case behavior, ou...
We describe a compact serialization algorithm mapping Prolog terms to natural numbers of bit-sizes proportional to the memory representation of the terms. The algorithm is a ‘no bit lost’ bijection, as it associates to each Prolog term a unique natural number and each natural number corresponds to a unique syntactically well-formed term.To avoid an...
In a typed functional language we specify a new tree-based number representation, hereditarily binary numbers, defined by applying recursively run-length encoding of bijective base-2 digits.
Hereditarily binary numbers support arithmetic operations that are limited by the structural complexity of their operands, rather than their bitsizes.
As a res...
Can we do arithmetic in a completely different way, with a radically
different data structure? Could this approach provide practical benefits, like
operations on giant numbers while having an average performance similar to
traditional bitstring representations?
While answering these questions positively, our tree based representation
described in t...
We describe arithmetic computations in terms of operations on some well known
free algebras (S1S, S2S and ordered rooted binary trees) while emphasizing the
common structure present in all them when seen as isomorphic with the set of
natural numbers.
Constructors and deconstructors seen through an initial algebra semantics are
generalized to recurs...
We describe two general mechanisms for producing pairing bijections
(bijective functions defined from N x N to N).
The first mechanism, using n-adic valuations results in parameterized
algorithms generating a countable family of distinct pairing bijections.
The second mechanism, using characteristic functions of subsets of N provides
2^N distinct p...
We introduce a simple agent construct associated to a named local database and a "Twitter-style" weak inheritance mechanism between local agents.
On top of a remote predicate call layer, connecting distributed agent spaces, we build a replication mechanism allowing agents "visiting" remote spaces to expose their computational capabilities to non-lo...
With the help of a simple reconfigurable logic gate that emulates conjunction, implication and a 1-bit memory cell, we devise a mechanism for synthesizing fine grained circuits that overlap multiple logic functions.
The use of the gate as an integrated combinational and sequential logic building block enables processor architectures that naturally...
A pairing function is a bijection f : N × N → N. Its inverse is called an em unpairing function. We show that boolean logic on bit vector variables can be expressed as compositions of pairing/unpairing operations which can emulate boolean evaluation of ordered binary decision trees (OBDTs) of a canonical form. Applications to enumeration and random...
We describe arithmetic computations in terms of operations on some well known free algebras (S1S, S2S and ordered rooted binary trees) while emphasizing the common structure present in all of them when seen as isomorphic with the set of natural numbers. Constructors and deconstructors seen through an initial algebra semantics are generalized to rec...
We express in terms of binary trees seen as Gödel System T types (with the empty type as the only primitive type) arithmetic computations within time and space bounds comparable to binary arithmetic and derive an efficiently testable total ordering on types, isomorphic to the ordering of natural numbers.
A few novel algorithms are derived in the pr...
We use Prolog as a flexible meta-language to provide executable specifications of some interesting mathematical objects and their operations. In the process, isomorphisms are unraveled between natural numbers and rooted ordered trees representing hereditarily finite sequences and rooted ordered binary trees representing Gödel’s System T types. Our...
We attack an interesting open problem (an efficient algorithm to invert the generalized Cantor n-tupling bijection) and solve it through a sequence of equivalence preserving transformations of logic programs, that take advantage of unique strengths of this programming paradigm. An extension to set and multiset tuple encodings, as well as a simple a...
e use Prolog as a flexible meta-language to provide executable specifications
of some fundamental mathematical objects and their transformations. In the
process, isomorphisms are unraveled between natural numbers and combinatorial
objects (rooted ordered trees representing hereditarily finite sequences and
rooted ordered binary trees representing G...
We encode/decode Prolog terms as unique natural numbers. Our encodings have
the following properties: a) are bijective b) natural numbers always decode to
syntactically valid terms c) they work in low polynomial time in the bitsize of
the representations d) the bitsize of our encodings is within constant factor
of the syntactic representation of th...
We describe an integrated solution to symbol, heap and logic engine memory management in a context where exchanges of arbitrary Prolog terms occur between multiple dynamically created engines, implemented in a new Java-based experimental Prolog system. As our symbols represent not just Prolog atoms, but also handles to Java objects (including arbit...
Factorization results in multisets of primes and this mapping can be turned into a bijection between multisets of natural numbers and natural numbers. At the same time, simpler and more efficient bijections exist that share some interesting properties with the bijection derived from factorization.
This paper describes mechanisms to emulate properti...
We discuss the impact of the separation of logic engines (independent logic processing units) and multi-threading on the design
of coordination mechanisms for a Prolog based agent infrastructure.
We advocate a combination of coroutining constructs with focus on expressiveness and a simplified, multi-threading API that
ensures optimal use available...
We describe the BinProlog system's compilation technology, runtime system and
its extensions supporting first-class Logic Engines while providing a short
history of its development, details of some of its newer re-implementations as
well as an overview of the most important architectural choices involved in
their design.
With focus on its differenc...
We discuss the impact of the separation of logic engines (independent logic processing units) and multi-threading on the design of parallel programming constructs aware of the fundamental invariant of today's typical computer architectures: the presence of a few independent cores. We advocate a combination of coroutining constructs with focus on ex...
Using a bijection between natural numbers and hereditarily finite functions we derive a new reversible variable length self-delimiting code through a bitstring representation in a balanced parenthesis language. The code features the ability to encode arbitrarily nested data types, can represent huge (low "complexity") numbers, and is decodable from...
Starting from an executable “shared axiomatization” of a number of bi-interpretable theories (Peano arithmetic, hereditarily finite sets and functions)
we introduce generic algorithms that can be instantiated to implement the usual arithmetic operations in terms of (purely
symbolic) hereditarily finite constructs, as well as the type language of Gö...
A common foundation of finite arithmetic, hereditarily finite sets and sequences, binary trees and graphs is described as a progressive refinement of Haskell type classes. We derive as instances symbolic implementations of arithmetic operations in terms of rooted ordered trees representing hereditarily finite sets and sequences. Conversely, arithme...
We provide a “shared axiomatization” of natural numbers and hereditarily finite sets built around a polymorphic abstraction of bijective base-2 arithmetics.
The “axiomatization” is described as a progressive refinement of Haskell type classes with examples of instances converging to an efficient implementation in terms of arbitrary length integers...
This paper is an exploration of isomorphisms between elementary data types (e.g., natural numbers, sets, finite functions, graphs, hypergraphs) and their extension to hereditarily finite universes through hylomor-phisms derived from ranking/unranking and pairing/unpairing opera-tions. An embedded higher order combinator language provides any-to-any...
We introduce a logic programming framework for data type trans- formations based on isomorphisms between elementary data types (natural numbers, finite functions, sets and permutations, digraphs, hypergraphs, etc.) and automatically derived extensions to heredi- tarily finite universes through ranking/unranking operations. An embedded higher order...
As a variation on the known theme of Gödel numberings, isomorphisms defining data type transformations in a strongly typed
functional language are organized as a finite groupoid using a higher order combinator language that unifies popular data
types as diverse as natural numbers, finite sequences, digraphs, hypergraphs and finite permutations with...
This paper is an exploration in a functional programming framework of isomorphisms between elementary data types (natural numbers, sets, bitstrings, finite functions) and their extension to hereditarily finite universes through hylomorphisms derived from ranking and unranking operations. The paper is part of a larger effort to cover in a declarativ...
We introduce a new programming language construct, Interactors, supporting the agent-oriented view that programming is a dialog between simple, self-contained, autonomous building blocks.
We define Interactors as an abstraction of answer generation and refinement in Logic Engines resulting in expressive language extension and metaprogramming patte...
This paper is an exploration in a functional programming framework of isomorphisms between elementary data types (natural numbers, sets, finite functions, permutations binary decision diagrams, graphs, hypergraphs, parenthesis languages, dyadic rationals etc.) and their extension to hereditarily finite universes through hylomorphisms derived from r...
Prolog's ability to return multiple answers on backtracking provides an elegant mechanism to derive reversible encodings of combinatorial objects as Natural Numbers i.e. {\em ranking} and {\em unranking} functions. Starting from a generalization of Ackerman's encoding of Hereditarily Finite Sets with Urelements and a novel tupling/untupling operati...
A ``pairing function'' J associates a unique natural number z to any two natural numbers x,y such that for two ``unpairing functions'' K and L, the equalities K(J(x,y))=x, L(J(x,y))=y and J(K(z),L(z))=z hold. Using pairing functions on natural number representations of truth tables, we derive an encoding for Binary Decision Diagrams with the unique...
We introduce a new programming language construct, Interactors, supporting the agent-oriented view that programming is a dialog between simple, self-contained, autonomous building blocks.
We define Interactors as an abstraction of answer generation and refinement in Logic Engines resulting in expressive language extension and metaprogramming patter...
We describe Haskell implementations of interesting combinatorial generation algorithms with focus on boolean functions and logic circuit representations. First, a complete exact combinational logic circuit synthesizer is described as a combination of catamorphisms and anamorphisms. Using pairing and unpairing functions on natural number representat...
Using specializations of unfold and fold on a generic tree data type we derive unranking and ranking functions providing natural number encodings for various Hereditarily Finite datatypes. In this context, we interpret unranking operations as instances of a generic anamorphism and ranking operations as instances of the corresponding catamorphism. S...
The paper is organized as a self-contained literate Haskell program that implements elements of an executable fi- nite set theory with focus on combinatorial generation and arithmetic encodings. The code, tested under GHC 6.6.1, is available at http://logic.csci.unt.edu/tarau/ research/2008/fSET.zip. We introduce ranking and unranking functions gen...
The paper is organized as a self-contained literate Prolog program that implements elements of an executable finite set theory with focus on combinatorial generation and arithmetic encodings. The complete Prolog code is available at http://logic.csci.unt.edu/tarau/research/2008/pHFS.zip . First, ranking and unranking functions for some "mathematica...
Logic Programming languages and combinational circuit synthesis tools share a common "combinatorial search over logic formulae" background. This paper attempts to reconnect the two fields with a fresh look at Prolog encodings for the combinatorial objects involved in circuit synthesis. While benefiting from Prolog's fast unification algorithm and b...
Using a new exact synthesizer that automatically induces minimal universal boolean function libraries, we introduce two indicators for comparing their expressiveness: the first based on how many gates are used to synthesize all binary operators, the second based on how many N-variable truth table values are covered by combining up to M gates from t...
The paper revisits exact combinational circuit synthesis with logic programming tools. Our focus is finding a minimal cost circuit that matches a specification - a notoriously hard nondeterministic search problem. After an exhaustive expressiveness comparison of various minimal libraries, two asymmetrical operations, Logical Implication "⇒" and Str...
researchers interested in the sequential and parallel implementation of logic and constraint programming languages and systems. CICLOPS promotes the free exchange of ideas and early dissemination of potentially premature and promising ideas. CICLOPS 2008 continues a tradition of successful workshops on Implementations of Logic Programming Systems,...
We introduce a variant of binary programs called elementary programs, based on a set of algebraic operations on a lattice of expressions. We propose a version of SLD-resolution that evaluates elementary programs by a unique operation of arrow composition and we study its OR-parallel implementation.
Elementary programs will become the target of our...
This paper describes a framework for building story traces (compact global views of a narrative) and story projections (selections of key elements of a narrative) and their applications in text understanding and classification. Word and sense properties are extracted from documents using the WordNet lexical database enhanced with Prolog inference r...
This paper describes a software component deployed as a Web service which enhances a user's online experience with a Virtual Storytelling Library through the use of voice-enabled Web-based conversational agents. The agents extract query answering information from story-specific XML/RDFmetadata files and expand its coverage through inferences based...
This paper describes Natural Language Processing techniques for document engineering in combination with graph algorithms and statistical methods. Google's PageRank and similar fast-converging recursive graph algorithms have provided practical means to statically rank vertices of large graphs like the World Wide Web. By combining a fast Java-based...
This paper describes an experiment designed to measure the effect of collaborative communication on task performance of a multiagent system. A simulation of a multiagent environment modeled after a bee colony examined the effects of collaboration through communication for various numbers of agents and environment sizes. Results show that collaborat...
Jinni 2004 [1, 2, 3] (available from http://www.binnetcorp.com/Jinni) expresses various agent programming constructs in terms of an Object Oriented Logic Programming layer implemented on top of a Java-based Prolog compiler. The architecture provides a high degree of compositionality through the use of a small set of orthogonal programming language...