Results 1  10
of
19
The theoretical foundations of LPTP (a logic program theorem prover)
 J. of Logic Programming
, 1998
"... This article contains the theoretical foundations of LPTP, a logic program theorem prover that has been implemented in Prolog by the author. LPTP is an interactive theorem prover in which one can prove correctness properties of pure Prolog programs that contain negation and builtin predicates like ..."
Abstract

Cited by 18 (2 self)
 Add to MetaCart
This article contains the theoretical foundations of LPTP, a logic program theorem prover that has been implemented in Prolog by the author. LPTP is an interactive theorem prover in which one can prove correctness properties of pure Prolog programs that contain negation and builtin predicates like is/2 and call/n + 1. The largest example program that has been verified using LPTP is 635 lines long including its specification. The full formal correctness proof is 13128 lines long (133 pages). The formal theory underlying LPTP is the inductive extension of pure Prolog programs. This is a firstorder theory that contains induction principles corresponding to the definition of the predicates in the program plus appropriate axioms for builtin predicates. The inductive extension allows to express modes and types of predicates. These can then be used to prove termination and correctness properties of programs. The main result of this article is that the inductive extension is an adequate axiomatization of the operational semantics of pure Prolog with builtin predicates. Keywords: Verification of logic programs; pure Prolog; lefttermination; induction. 1
Theories With SelfApplication and Computational Complexity
 Information and Computation
, 2002
"... Applicative theories form the basis of Feferman's systems of explicit mathematics, which have been introduced in the early seventies. In an applicative universe, all individuals may be thought of as operations, which can freely be applied to each other: selfapplication is meaningful, but not ne ..."
Abstract

Cited by 12 (9 self)
 Add to MetaCart
Applicative theories form the basis of Feferman's systems of explicit mathematics, which have been introduced in the early seventies. In an applicative universe, all individuals may be thought of as operations, which can freely be applied to each other: selfapplication is meaningful, but not necessarily total. It has turned out that theories with selfapplication provide a natural setting for studying notions of abstract computability, especially from a prooftheoretic perspective.
Using Reflection to Explain and Enhance Type Theory
 Proof and Computation, volume 139 of NATO Advanced Study Institute, International Summer School held in Marktoberdorf, Germany, July 20August 1, NATO Series F
, 1994
"... The five lectures at Marktoberdorf on which these notes are based were about the architecture of problem solving environments which use theorem provers. Experience with these systems over the past two decades has shown that the prover must be extensible, yet it must be kept safe. We examine a way to ..."
Abstract

Cited by 11 (5 self)
 Add to MetaCart
The five lectures at Marktoberdorf on which these notes are based were about the architecture of problem solving environments which use theorem provers. Experience with these systems over the past two decades has shown that the prover must be extensible, yet it must be kept safe. We examine a way to safely add new decision procedures to the Nuprl prover. It relies on a reflection mechanism and is applicable to any tacticoriented prover with sufficient reflection. The lectures explain reflection in the setting of constructive type theory, the core logic of Nuprl.
Partial computations in constructive type theory
 JOURNAL OF LOGIC AND COMPUTATION
, 1991
"... Constructive type theory as conceived by Per MartinLöf has a very rich type system, but partial functions cannot be typed. This also makes it impossible to directly write recursive programs. In this paper a constructive type theory Red is defined which includes a partial type constructor A; objects ..."
Abstract

Cited by 7 (5 self)
 Add to MetaCart
Constructive type theory as conceived by Per MartinLöf has a very rich type system, but partial functions cannot be typed. This also makes it impossible to directly write recursive programs. In this paper a constructive type theory Red is defined which includes a partial type constructor A; objects in the type A may diverge, but if they converge, they must be members of A. A fixed point typing principle is given to allow typing of recursive functions. The extraction paradigm of type theory, whereby programs are automatically extracted from constructive proofs, is extended to allow extraction of fixed points. There is a Scott fixed point induction principle for reasoning about these functions. Soundness of the theory is proven. Type theory becomes a more expressive programming logic as a result.
The Functional Side of Logic Programming
 In Proceedings of the Seventh International Conference on Functional Programming Languages and Computer Architecture (FPCA'95
, 1995
"... In this paper we study the relationships between logic programming and functional programming, trying to answer the following basic question: to what extent is logic programming just functional programming in disguise? We develop a theory to formally express this correspondence, and exhibit a class ..."
Abstract

Cited by 7 (2 self)
 Add to MetaCart
In this paper we study the relationships between logic programming and functional programming, trying to answer the following basic question: to what extent is logic programming just functional programming in disguise? We develop a theory to formally express this correspondence, and exhibit a class that can by right be considered as the functional core of logic programming. Moreover, since the functional meaning of each program in this class is provided constructively, via a transformation from logic to functional programs, we show how the obtained theoretical results are useful also in the study of languages integration, termination issues, and practical implementations. 1 Introduction During the recent years, a huge amount of effort was devoted to integrating the two paradigms of functional programming and logic programming, and to develop languages combining them (see for instance [12]). However, much less attention was devoted to the basic problem of studying what are the intimat...
Hybrid PartialTotal Type Theory
, 1995
"... In this paper a hybrid type theory HTT is defined which combines the programming language notion of partial type with the logical notion of total type into a single theory. A new partial type constructor A is added to the type theory: objects in A may diverge, but if they converge, they must be memb ..."
Abstract

Cited by 5 (0 self)
 Add to MetaCart
In this paper a hybrid type theory HTT is defined which combines the programming language notion of partial type with the logical notion of total type into a single theory. A new partial type constructor A is added to the type theory: objects in A may diverge, but if they converge, they must be members of A. A fixed point typing rule is given to allow for typing of fixed points. The underlying theory is based on ideas from Feferman's Class Theory and Martin Lof's Intuitionistic Type Theory. The extraction paradigm of constructive type theory is extended to allow direct extraction of arbitrary fixed points. Important features of general programming logics such as LCF are preserved, including the typing of all partial functions, a partial ordering ! ¸ on computations, and a fixed point induction principle. The resulting theory is thus intended as a generalpurpose programming logic. Rules are presented and soundness of the theory established. Keywords: Constructive Type Theory, Logics...
First Steps Into Metapredicativity in Explicit Mathematics
, 1999
"... The system EMU of explicit mathematics incorporates the uniform construction of universes. In this paper we give a prooftheoretic treatment of EMU and show that it corresponds to transfinite hierarchies of fixed points of positive arithmetic operators, where the length of these fixed point hierarc ..."
Abstract

Cited by 5 (2 self)
 Add to MetaCart
The system EMU of explicit mathematics incorporates the uniform construction of universes. In this paper we give a prooftheoretic treatment of EMU and show that it corresponds to transfinite hierarchies of fixed points of positive arithmetic operators, where the length of these fixed point hierarchies is bounded by # 0 . 1 Introduction Metapredicativity is a new general term in proof theory which describes the analysis and study of formal systems whose prooftheoretic strength is beyond the FefermanSchutte ordinal # 0 but which are nevertheless amenable to purely predicative methods. Typical examples of formal systems which are apt for scaling the initial part of metapredicativity are the transfinitely iterated fixed point theories # ID # whose detailed prooftheoretic analysis is given by Jager, Kahle, Setzer and Strahm in [18]. In this paper we assume familiarity with [18]. For natural extensions of Friedman's ATR that can be measured against transfinitely iterated fixed point ...
Definitions in Nonstrict Positive Free Logic
 Modern Logic
, 1997
"... Every "practical" programming language supplies the programmer with at least one nonstrict construct, such as the ALGOL60 arithmetic `ifthen else' and the LISP `cond'. Many programming languages also enable the user to define nonstrict functions. In some languages, this is accomplished through the ..."
Abstract

Cited by 4 (2 self)
 Add to MetaCart
Every "practical" programming language supplies the programmer with at least one nonstrict construct, such as the ALGOL60 arithmetic `ifthen else' and the LISP `cond'. Many programming languages also enable the user to define nonstrict functions. In some languages, this is accomplished through the lazy evaluation of procedure parameters, as realized, for example, by the callbyname devices of ALGOL60 and SIMULA67 and the callbyneed mechanism of Haskell. In other languages, such as Common LISP, a macro definition facility can serve a similar purpose. Programming languages that provide a mechanism for the user to define nonstrict functions are nonstrict languages, and we call the natural underlying logic of these languages nonstrict positive free logic. In this paper, we present the definition theory of nonstrict positive free logic. Suitable transformations of sentences in standard logic into sentences in nonstrict positive free logic preserve many properties of definitions in stand...
Formal Verification of Logic Programs: Foundations and Implementation
 In Logical Foundations of Computer Science LFCS '97  Logic at Yaroslavl
, 1997
"... . We present the theoretical foundations of LPTP, a logic program theorem prover implemented in Prolog by the author. LPTP is an interactive theorem prover in which one can prove termination and correctness properties of pure Prolog programs that contain negation and builtin predicates like is/2 an ..."
Abstract

Cited by 4 (0 self)
 Add to MetaCart
. We present the theoretical foundations of LPTP, a logic program theorem prover implemented in Prolog by the author. LPTP is an interactive theorem prover in which one can prove termination and correctness properties of pure Prolog programs that contain negation and builtin predicates like is/2 and call/n. The largest program that has been verified using LPTP is 635 lines long including its specification. The full formal correctness proof is 13128 lines long (133 pages). The formal theory underlying LPTP is the inductive extension of pure Prolog programs. This is a firstorder theory that contains induction principles corresponding to the definition of the predicates in the program plus appropriate axioms for builtin predicates. 1
An Intensional Semantics for Elementary Program Transformations
, 1993
"... This paper is a contribution to the formal study and analysis of vernacular forms of program derivation. Specifically, in this paper, our vernacular derivations are elementary program transformations over the natural numbers. We provide an intensional semantics for these transformations within the d ..."
Abstract

Cited by 3 (3 self)
 Add to MetaCart
This paper is a contribution to the formal study and analysis of vernacular forms of program derivation. Specifically, in this paper, our vernacular derivations are elementary program transformations over the natural numbers. We provide an intensional semantics for these transformations within the derivations of the Elementary theory of Operations and Numbers, EON, [Bee85]. This semantics is intensional in the sense that the computational content of a derivation associated with a transformation is equal, up to the intensional equality underlying the theory EON, to the computational content of the transformation itself. The interpretation enables us to underwrite the correctness of the program transformations and, further, provides an analysis of correctness by classifying, via schema, the operations available by these transformations. 2 Introduction What is the relationship between vernacular and formalised arguments? We are interested in developing methods and results which can be...