Results 21  30
of
76
A Logic Programming Approach to Implementing HigherOrder Term Rewriting
 Second International Workshop on Extensions to Logic Programming, volume 596 of Lecture Notes in Arti Intelligence
, 1992
"... Term rewriting has proven to be an important technique in theorem proving. In this paper, we illustrate that rewrite systems and strategies for higherorder term rewriting, which includes the usual notion of firstorder rewriting, can be naturally specified and implemented in a higherorder logic pr ..."
Abstract

Cited by 16 (2 self)
 Add to MetaCart
Term rewriting has proven to be an important technique in theorem proving. In this paper, we illustrate that rewrite systems and strategies for higherorder term rewriting, which includes the usual notion of firstorder rewriting, can be naturally specified and implemented in a higherorder logic programming language. We adopt a notion of higherorder rewrite system which uses the simply typed calculus as the language for expressing rules, with a restriction on the occurrences of free variables on the left hand sides of rules so that matching of terms with rewrite templates is decidable. The logic programming language contains an implementation of the simplytyped lambda calculus including fij conversion and higherorder unification. In addition, universal quantification in queries and the bodies of clauses is permitted. For higherorder rewriting, we show how these operations implemented at the metalevel provide elegant mechanisms for the objectlevel operations of descending thro...
Towards Selfverification of HOL Light
 In International Joint Conference on Automated Reasoning
, 2006
"... Abstract. The HOL Light prover is based on a logical kernel consisting of about 400 lines of mostly functional OCaml, whose complete formal verification seems to be quite feasible. We would like to formally verify (i) that the abstract HOL logic is indeed correct, and (ii) that the OCaml code does c ..."
Abstract

Cited by 16 (0 self)
 Add to MetaCart
Abstract. The HOL Light prover is based on a logical kernel consisting of about 400 lines of mostly functional OCaml, whose complete formal verification seems to be quite feasible. We would like to formally verify (i) that the abstract HOL logic is indeed correct, and (ii) that the OCaml code does correctly implement this logic. We have performed a full verification of an imperfect but quite detailed model of the basic HOL Light core, without definitional mechanisms, and this verification is entirely conducted with respect to a settheoretic semantics within HOL Light itself. We will duly explain why the obvious logical and pragmatic difficulties do not vitiate this approach, even though it looks impossible or useless at first sight. Extension to include definitional mechanisms seems straightforward enough, and the results so far allay most of our practical worries. 1 Introduction: quis custodiet ipsos custodes? Mathematical proofs are subjected to peer review before publication, but there
Extending Sledgehammer with SMT Solvers
"... Abstract. Sledgehammer is a component of Isabelle/HOL that employs firstorder automatic theorem provers (ATPs) to discharge goals arising in interactive proofs. It heuristically selects relevant facts and, if an ATP is successful, produces a snippet that replays the proof in Isabelle. We extended Sl ..."
Abstract

Cited by 16 (7 self)
 Add to MetaCart
Abstract. Sledgehammer is a component of Isabelle/HOL that employs firstorder automatic theorem provers (ATPs) to discharge goals arising in interactive proofs. It heuristically selects relevant facts and, if an ATP is successful, produces a snippet that replays the proof in Isabelle. We extended Sledgehammer to invoke satisfiability modulo theories (SMT) solvers as well, exploiting its relevance filter and parallel architecture. Isabelle users are now pleasantly surprised by SMT proofs for problems beyond the ATPs ’ reach. Remarkably, the best SMT solver performs better than the best ATP on most of our benchmarks. 1
Hybrid Interactive Theorem Proving using Nuprl and HOL
 IN MCCUNE [1997
, 1997
"... In this paper we give the first example of a significant piece of formal mathematics conducted in a hybrid of two different interactive systems. We constructively prove a theorem in Nuprl, from which a program can be extracted, but we use classical mathematics imported from HOL, and a connectio ..."
Abstract

Cited by 14 (1 self)
 Add to MetaCart
In this paper we give the first example of a significant piece of formal mathematics conducted in a hybrid of two different interactive systems. We constructively prove a theorem in Nuprl, from which a program can be extracted, but we use classical mathematics imported from HOL, and a connection to some of HOL's definitional packages, for parts of the proof that do not contribute to the program.
Transformational Rewriting with Ruby
 In CHDL '93
, 1993
"... This paper describes a tool for use in userdirected synthesis of circuits specified using the relational VLSI description language Ruby. The synthesis method is based on transformational rewriting of Ruby terms in accordance with previously defined term equivalences. The tool permits the introducti ..."
Abstract

Cited by 13 (8 self)
 Add to MetaCart
This paper describes a tool for use in userdirected synthesis of circuits specified using the relational VLSI description language Ruby. The synthesis method is based on transformational rewriting of Ruby terms in accordance with previously defined term equivalences. The tool permits the introduction of constraints into the specification, thus enhancing the usefulness of the rewrite system in relation to simple rewriting. Keyword Codes: B.7.2, D.1.1. Keywords: Integrated Circuits, Design Aids; Applicative Programming. 1. Introduction Ruby [3] is a language intended for specifying VLSI circuits in terms of relational abstractions of their behaviour. A circuit is described by a binary relation, and the language permits simple relations to be composed into more complex ones by the use of a variety of combining forms which are higherorder functions. Similarly, simple combining forms can be composed into more complex ones, as in conventional languages for functional programming. The basi...
A Notation for Lambda Terms II: Refinements and Applications
, 1994
"... Issues that are relevant to the representation of lambda terms in contexts where their intensions have to be manipulated are examined. The basis for such a representation is provided by the suspension notation for lambda terms that is described in a companion paper. This notation obviates ffconver ..."
Abstract

Cited by 12 (2 self)
 Add to MetaCart
Issues that are relevant to the representation of lambda terms in contexts where their intensions have to be manipulated are examined. The basis for such a representation is provided by the suspension notation for lambda terms that is described in a companion paper. This notation obviates ffconversion in the comparison of terms by using the `nameless' scheme of de Bruijn and also permits a delaying of substitutions by including a class of terms that encode other terms together with substitutions to be performed on them. The suspension notation contains a mechanism for `merging' substitutions so that they can be effected in a common structure traversal. The mechanism is cumbersome to implement in its full generality and a simplification to it is considered. In particular, the old merging operations are eliminated in favor of new ones that capture some of their functionality and that permit a simplified syntax for terms. The resulting notation is refined by the addition of annotations ...
An Overview of A Formal Framework For Managing Mathematics
 Annals of Mathematics and Artificial Intelligence
, 2003
"... Mathematics is a process of creating, exploring, and connecting mathematical models. This paper presents an overview of a formal framework for managing the mathematics process as well as the mathematical knowledge produced by the process. The central idea of the framework is the notion of a biform t ..."
Abstract

Cited by 12 (6 self)
 Add to MetaCart
Mathematics is a process of creating, exploring, and connecting mathematical models. This paper presents an overview of a formal framework for managing the mathematics process as well as the mathematical knowledge produced by the process. The central idea of the framework is the notion of a biform theory which is simultaneously an axiomatic theory and an algorithmic theory. Representing a collection of mathematical models, a biform theory provides a formal context for both deduction and computation. The framework includes facilities for deriving theorems via a mixture of deduction and computation, constructing sound deduction and computation rules, and developing networks of biform theories linked by interpretations. The framework is not tied to a specific underlying logic; indeed, it is intended to be used with several background logics simultaneously. Many of the ideas and mechanisms used in the framework are inspired by the imps Interactive Mathematical Proof System and the Axiom computer algebra system.
Formal proof—theory and practice
 Notices AMS
, 2008
"... Aformal proof is a proof written in a precise artificial language that admits only a fixed repertoire of stylized steps. This formal language is usually designed so that there is a purely mechanical process by which the correctness of a proof in the language can be verified. Nowadays, there are nume ..."
Abstract

Cited by 12 (1 self)
 Add to MetaCart
Aformal proof is a proof written in a precise artificial language that admits only a fixed repertoire of stylized steps. This formal language is usually designed so that there is a purely mechanical process by which the correctness of a proof in the language can be verified. Nowadays, there are numerous computer programs known as proof assistants that can check, or even partially construct, formal proofs written in their preferred proof language. These can be considered as practical, computerbased realizations of the traditional systems of formal symbolic logic and set theory proposed as foundations for mathematics. Why should we wish to create formal proofs?
Translating Dependent Type Theory into Higher Order Logic
 IN PROCEEDINGS OF THE SECOND INTERNATIONAL CONFERENCE ON TYPED LAMBDA CALCULI AND APPLICATIONS, VOLUME 664 OF LECTURE NOTES IN COMPUTER SCIENCE
, 1993
"... This paper describes a translation of the complex calculus of dependent type theory into the relatively simpler higher order logic originally introduced by Church. In particular, it shows how type dependency as found in MartinLöf's Intuitionistic Type Theory can be simulated in the formulation o ..."
Abstract

Cited by 11 (2 self)
 Add to MetaCart
This paper describes a translation of the complex calculus of dependent type theory into the relatively simpler higher order logic originally introduced by Church. In particular, it shows how type dependency as found in MartinLöf's Intuitionistic Type Theory can be simulated in the formulation of higher order logic mechanized by the HOL theoremproving system. The outcome is a theorem prover for dependent type theory, built on top of HOL, that allows natural and flexible use of settheoretic notions. A bit more technically, the language of the resulting theoremprover is the internal language of a (boolean) topos (as formulated by Phoa).