Results 11  20
of
56
An Extension to ML to Handle Bound Variables in Data Structures
, 1990
"... Most conventional programming languages have direct methods for representing firstorder terms (say, via concrete datatypes in ML). If it is necessary to represent structures containing bound variables, such as λterms, formulas, types, or proofs, these must first be mapped into firstorder terms, a ..."
Abstract

Cited by 39 (2 self)
 Add to MetaCart
Most conventional programming languages have direct methods for representing firstorder terms (say, via concrete datatypes in ML). If it is necessary to represent structures containing bound variables, such as λterms, formulas, types, or proofs, these must first be mapped into firstorder terms, and then a significant number of auxiliary procedures must be implemented to manage bound variable names, check for free occurrences, do substitution, test for equality modulo alphaconversion, etc. We shall show how the applicative core of the ML programming language can be enhanced so that λterms can be represented more directly and so that the enhanced language, called MLλ, provides a more elegant method of manipulating bound variables within data structures. In fact, the names of bound variables will not be accessible to the MLλ programmer. This extension to ML involves the following: introduction of the new type constructor ’a => ’b for the type of λterms formed by abstracting a parameter of type ’a out of a term of type ’b; a very restricted and simple form of higherorder pattern matching; a method for extending a given data structure with a new constructor; and, a method for extending function definitions to handle such new constructors. We present several examples of MLλ programs.
A Proof of the ChurchRosser Theorem and its Representation in a Logical Framework
, 1992
"... We give a detailed, informal proof of the ChurchRosser property for the untyped lambdacalculus and show its representation in LF. The proof is due to Tait and MartinLöf and is based on the notion of parallel reduction. The representation employs higherorder abstract syntax and the judgmentsast ..."
Abstract

Cited by 37 (8 self)
 Add to MetaCart
We give a detailed, informal proof of the ChurchRosser property for the untyped lambdacalculus and show its representation in LF. The proof is due to Tait and MartinLöf and is based on the notion of parallel reduction. The representation employs higherorder abstract syntax and the judgmentsastypes principle and takes advantage of term reconstruction as it is provided in the Elf implementation of LF. Proofs of metatheorems are represented as higherlevel judgments which relate sequences of reductions and conversions.
Tabled HigherOrder Logic Programming
 In 20th International Conference on Automated Deduction
, 2003
"... Elf is a general metalanguage for the specification and implementation of logical systems in the style of the logical framework LF. Based on a logic programming interpretation, it supports executing logical systems and reasoning with and about them, thereby reducing the effort required for each ..."
Abstract

Cited by 29 (11 self)
 Add to MetaCart
(Show Context)
Elf is a general metalanguage for the specification and implementation of logical systems in the style of the logical framework LF. Based on a logic programming interpretation, it supports executing logical systems and reasoning with and about them, thereby reducing the effort required for each particular logical system. The traditional logic programming paradigm is extended by replacing firstorder terms with dependently typed terms and allowing implication and universal quantification in the bodies of clauses. These higherorder features allow us to model concisely and elegantly conditions on variables and the discharge of assumptions which are prevalent in many logical systems. However, many specifications are not executable under the traditional logic programming semantics and performance may be hampered by redundant computation. To address these problems, I propose a tabled higherorder logic programming interpretation for Elf. Some redundant computation is eliminated by memoizing subcomputation and reusing its result later. If we do not distinguish different proofs for a property, then search based on tabled logic programming is complete and terminates for programs with bounded recursion. In this proposal, I present a prooftheoretical characterization for tabled higherorder logic programming. It is the basis of the implemented prototype for tabled logic programming interpreter for Elf. Preliminary experiments indicate that many more logical specifications are executable under the tabled semantics. In addition, tabled computation leads to more efficient execution of programs. The goal of the thesis is to demonstrate that tabled logic programming allows us to efficiently automate reasoning with and about logical systems in the logical f...
Isabelle Tutorial and User's Manual
, 1990
"... This manual describes how to use the theorem prover Isabelle. For beginners, it explains how to perform simple singlestep proofs in the builtin logics. These include firstorder logic, a classical sequent calculus, zf set theory, Constructive Type Theory, and higherorder logic. Each of these logi ..."
Abstract

Cited by 27 (2 self)
 Add to MetaCart
This manual describes how to use the theorem prover Isabelle. For beginners, it explains how to perform simple singlestep proofs in the builtin logics. These include firstorder logic, a classical sequent calculus, zf set theory, Constructive Type Theory, and higherorder logic. Each of these logics is described. The manual then explains how to develop advanced tactics and tacticals and how to derive rules. Finally, it describes how to define new logics within Isabelle. Acknowledgements. Isabelle uses Dave Matthews's Standard ml compiler, Poly/ml. Philippe de Groote wrote the first version of the logic lk. Funding and equipment were provided by SERC/Alvey grant GR/E0355.7 and ESPRIT BRA grant 3245. Thanks also to Philippe Noel, Brian Monahan, Martin Coen, and Annette Schumann. Contents 1 Basic Features of Isabelle 5 1.1 Overview of Isabelle : : : : : : : : : : : : : : : : : : : : : : : : : : : 6 1.1.1 The representation of logics : : : : : : : : : : : : : : : : : : : 6 1.1.2 The...
Isabelle/Isar  a generic framework for humanreadable proof documents
 UNIVERSITY OF BIA̷LYSTOK
, 2007
"... ..."
Extensions and Applications of Higherorder Unification
, 1990
"... ... unification problems. Then, in this framework, we develop a new unification algorithm for acalculus with dependent function (II) types. This algorithm is especially useful as it provides for mechanization in the very expressive Logical Framework (LF). The development (objectlanguages). The ric ..."
Abstract

Cited by 25 (1 self)
 Add to MetaCart
(Show Context)
... unification problems. Then, in this framework, we develop a new unification algorithm for acalculus with dependent function (II) types. This algorithm is especially useful as it provides for mechanization in the very expressive Logical Framework (LF). The development (objectlanguages). The rich structure of a typedcalculus,asopposedtotraditional,rst generalideaistouseacalculusasametalanguageforrepresentingvariousotherlanguages thelattercase,thealgorithmisincomplete,thoughstillquiteusefulinpractice. Thelastpartofthedissertationprovidesexamplesoftheusefulnessofthealgorithms.The algorithmrstfordependentproduct()types,andsecondforimplicitpolymorphism.In involvessignicantcomplicationsnotarisingHuet'scorrespondingalgorithmforthesimply orderabstractsyntaxtrees,allowsustoexpressrules,e.g.,programtransformationand typedcalculus,primarilybecauseitmustdealwithilltypedterms.Wethenextendthis Wecanthenuseunicationinthemetalanguagetomechanizeapplicationoftheserules.
Optimizing HigherOrder Pattern Unification
 19th International Conference on Automated Deduction
, 2003
"... We present an abstract view of existential variables in a dependently typed lambdacalculus based on modal type theory. This allows us to justify optimizations to pattern unification such as linearization, which eliminates many unnecessary occurschecks. The presented modal framework explains a ..."
Abstract

Cited by 18 (9 self)
 Add to MetaCart
We present an abstract view of existential variables in a dependently typed lambdacalculus based on modal type theory. This allows us to justify optimizations to pattern unification such as linearization, which eliminates many unnecessary occurschecks. The presented modal framework explains a number of features of the current implementation of higherorder unification in Twelf and provides insight into several optimizations. Experimental results demonstrate significant performance improvement in many example applications of Twelf, including those in the area of proofcarrying code.
HigherOrder Substitution Tree Indexing
 19th International Conference on Logic Programming
, 2003
"... We present a higherorder term indexing strategy based on substitution trees. The strategy is based in linear higherorder patterns where computationally expensive parts are delayed. Insertion of terms into the index is based on computing the most specific linear generalization of two linear hig ..."
Abstract

Cited by 16 (5 self)
 Add to MetaCart
(Show Context)
We present a higherorder term indexing strategy based on substitution trees. The strategy is based in linear higherorder patterns where computationally expensive parts are delayed. Insertion of terms into the index is based on computing the most specific linear generalization of two linear higherorder patterns. Retrieving terms is based on matching two linear higherorder patterns. This indexing structure is implemented as part of the Twelf system to speedup the execution of the tabled higherlogic programming interpreter. Experimental results show substantial performance improvements, between 100% and over 800%.