- Research Article
2
- 10.1006/inco.1995.1034
Suprema of Open and Closed Formulas and Their Application to Resolution
- Feb 01, 1995
- Information and Computation
- M Bellia + 1 more +1
Suprema of Open and Closed Formulas and Their Application to Resolution
A logic language is suitable for specification if it is equipped with features for data abstraction and modularization. In this paper, an effective mechanism to incorporate function and type into logic programming is presented as the means to embed data abstraction mechanism into logic programming. This incorporation is essentially based on Horn clause logic with equality and a polymorphic type system that is an extension of Mycroft and O’Keefe’s system. This paper also presents an implementation based on Warren Abstract Machine (WAM) and shows the performance, along with a comparison with WAM.
Suprema of Open and Closed Formulas and Their Application to Resolution
Suprema of Open and Closed Formulas and Their Application to Resolution
Logic programming with bounded quantifiers
This paper describes an extension of Horn clause logic programs by bounded quantifiers. Bounded quantifiers had been extensively used in a part of mathematical logic called theory of admissible sets [2]. Later some variants of bounded quantifiers had been introduced in logic programming languages [12, 19, 21, 9, 6, 7]. We show that an extension of logic programs by bounded quantifiers has several equivalent logical semantics and is efficiently implementable using a variant of SLD-resolution, which we call SLDB-resolution. We give examples showing that introduction of bounded quantifiers results in a high level logical specification language. An expressive power of subsets of Horn clauses and subsets of logic programs with bounded quantifiers is compared. We also show that the use of bounded quantifiers sheds new light on classical negation in logic programming.KeywordsLogic ProgramLogic ProgrammingFunction SymbolUnification AlgorithmPredicate SymbolThese keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.
Read moreStructural semantics for polymorphic data types (preliminary report)
Structural semantics for polymorphic data types (preliminary report)
Generalised Kernel Sets for Inverse Entailment
The task of inverting logical entailment is of central importance to the disciplines of Abductive and Inductive Logic Programming (ALP & ILP). Bottom Generalisation (BG) is a widely applied approach for Inverse Entailment (IE), but is limited to deriving single clauses from a hypothesis space restricted by Plotkin’s notion of C-derivation. Moreover, known practical applications of BG are confined to Horn clause logic. Recently, a hybrid ALP-ILP proof procedure, called HAIL, was shown to generalise existing BG techniques by deriving multiple clauses in response to a single example, and constructing hypotheses outside the semantics of BG. The HAIL proof procedure is based on a new semantics, called Kernel Set Subsumption (KSS), which was shown to be a sound generalisation of BG. But so far KSS is defined only for Horn clauses. This paper extends the semantics of KSS from Horn clause logic to general clausal logic, where it is shown to remain a sound extension of BG. A generalisation of the C-derivation, called a K*-derivation, is introduced and shown to provide a sound and complete characterisation of KSS. Finally, the K*-derivation is used to provide a systematic comparison of existing proof procedures based on IE.
Read moreA polymorphic type system with subtypes for Prolog
From a software engineering point of view, logic programming lacks many properties allowing secure development of large programs by many programmers. In this paper we try to improve these properties by proposing a polymorphic type system for Prolog. Our type system is able to deal with subtype relations if information about dataflow within clauses is available. This information can be given by a mode system. We give an outline of a type checking algorithm for this type system and discuss several problems which do not arise in type systems without subtypes.
Read moreTranslating a modal language with embedded implication into Horn clause logic
In this paper we present a method for translating Horn clauses extended with modalities and embedded implication (which provide reasoning capabilities in a multiagent situation and hypothetical reasoning) into Horn clauses, therefore suitable for SLD resolution. The translation takes two steps: the first one eliminates embedded implications by introducing new modalities; the second eliminates modalities by adding an argument which represents the worlds of the Kripke semantics to all predicates.
Read moreA polymorphic modal type system for lisp-like multi-staged languages
This article presents a polymorphic modal type system and its principal type inference algorithm that conservatively extend ML by all of Lisp's staging constructs (the quasi-quotation system). The combination is meaningful because ML is a practical higher-order, impure, and typed language, while Lisp's quasi-quotation system has long evolved complying with the demands from multi-staged programming practices. Our type system supports open code, unrestricted operations on references, intentional variable-capturing substitution as well as capture-avoiding substitution, and lifting values into code, whose combination escaped all the previous systems.
Read moreA polymorphic modal type system for lisp-like multi-staged languages
This article presents a polymorphic modal type system and its principal type inference algorithm that conservatively extend ML by all of Lisp's staging constructs (the quasi-quotation system). The combination is meaningful because ML is a practical higher-order, impure, and typed language, while Lisp's quasi-quotation system has long evolved complying with the demands from multi-staged programming practices. Our type system supports open code, unrestricted operations on references, intentional variable-capturing substitution as well as capture-avoiding substitution, and lifting values into code, whose combination escaped all the previous systems.
Read moreAn incrementally extensible document retrieval system based on linguistic and logical principles
Most natural language based document retrieval systems use the syntax structures of constituent phrases of documents as index terms. Many of these systems also attempt to reduce the syntactic variability of natural language by some normalisation procedure applied to these syntax structures. However, the retrieval performance of such systems remains fairly disappointing. Some systems therefore use a meaning representation language to index and retrieve documents. In this paper, a system is presented that uses Horn Clause Logic as meaning representation language, employs advanced techniques from natural Language Processing to achieve incremental extensibility, and uses methods from Logic Programming to achieve robustness in the face of insufficient data.
Read moreAn empirical study of the LSS specification toolkit in use
An empirical study of the LSS specification toolkit in use
Equivalence and difference between institutions: simulating Horn Clause Logic with based algebras
In this paper, we investigate several logical frameworks whose expressiveness lies between Conditional Equational Logic and Horn Clause Logic. The main result deals with thePART-construction, which interprets total based algebras as partial algebras. This construction can be viewed as a simulation of Horn Clause Theories by means of Conditional Equational Theories. Other constructions in other frameworks are extendable to simulations in a similar way. The notion of categorical retractive simulation captures some essential properties of these, which allows us to measure the equivalence and difference between institutions.
Read morePolymorphic type inference with overloading and subtyping
We show how the Hindley/Milner polymorphic type system can be extended to incorporate overloading and subtyping, by using constrained quantification. We describe an algorithm for inferring principal types and outline a proof of its soundness and completeness. We find that it is necessary in practice to simplify the inferred types, and we describe techniques for type simplification that involve shape unification, strongly connected components, transitive reduction, and the monotonicities of type formulas.
Read moreTowards an ML-style polymorphic type system for C
Advanced polymorphic type systems have come to play an important role in the world of functional programming. But, curiously, these type systems have so far had little impact upon widely-used imperative programming languages like C and C++. We show that ML-style polymorphism can be integrated smoothly into a dialect of C, which we call Polymorphic C. It has the same pointer operations as C, including the address-of operator &, the dereferencing operator*, and pointer arithmetic. Our type system allows these operations in their full generality, so that programmers need not give up the flexibility of C to gain the benefits of ML-style polymorphism. We prove a type soundness theorem that gives a rigorous and useful characterization of well-typed Polymorphic C programs in terms of what can go wrong when they are evaluated.
Read moreConsistent Subtyping for All
Consistent subtyping is employed in some gradual type systems to validate type conversions. The original definition by Siek and Taha serves as a guideline for designing gradual type systems with subtyping. Polymorphic types à la System F also induce a subtyping relation that relates polymorphic types to their instantiations. However, Siek and Taha’s definition is not adequate for polymorphic subtyping. The first goal of this article is to propose a generalization of consistent subtyping that is adequate for polymorphic subtyping and subsumes the original definition by Siek and Taha. The new definition of consistent subtyping provides novel insights with respect to previous polymorphic gradual type systems, which did not employ consistent subtyping. The second goal of this article is to present a gradually typed calculus for implicit (higher-rank) polymorphism that uses our new notion of consistent subtyping. We develop both declarative and (bidirectional) algorithmic versions for the type system. The algorithmic version employs techniques developed by Dunfield and Krishnaswami for higher-rank polymorphism to deal with instantiation. We prove that the new calculus satisfies all static aspects of the refined criteria for gradual typing. We also study an extension of the type system with static and gradual type parameters, in an attempt to support a variant of the dynamic criterion for gradual typing. Assuming a coherence conjecture for the extended calculus, we show that the dynamic gradual guarantee of our source language can be reduced to that of λ B, which, at the time of writing, is still an open question. Most of the metatheory of this article, except some manual proofs for the algorithmic type system and extensions, has been mechanically formalized using the Coq proof assistant.
Read moreThe logic of walking: representing design knowledge on pedestrian traffic nets
Specific examples of how ‘soft’ architectural design knowledge can be formalized and made available to knowledge-based design support systems are scarce in the literature. In this paper such an example is presented in some detail. In a context of design of networks of footpaths, streets, or the like for pedestrian traffic, two particular design concepts are studied: ‘concentration of pedestrians’ and ‘smoothness of walking lines’. The concepts are put to work in a hypothetical design, and on that background their possible representation in Horn clause logic is outlined, and computational aspects of the representation are discussed.
Read more