Results 11  20
of
43
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 36 (1 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 36 (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 26 (11 self)
 Add to MetaCart
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 26 (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...
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
... 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.
Isabelle/Isar  a generic framework for humanreadable proof documents
 UNIVERSITY OF BIA̷LYSTOK
, 2007
"... ..."
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
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%.
A Tool for Developing Correct Programs By Refinement
 PROC. BCS 7TH REFINEMENT WORKSHOP
, 1996
"... The refinement calculus for the development of programs from specifications is well suited to mechanised support. We review the requirements for tool support of refinement as gleaned from our experience with a number of existing refinement tools, and report on the design and implementation of a ..."
Abstract

Cited by 13 (4 self)
 Add to MetaCart
The refinement calculus for the development of programs from specifications is well suited to mechanised support. We review the requirements for tool support of refinement as gleaned from our experience with a number of existing refinement tools, and report on the design and implementation of a new tool to support refinement based on these requirements. The main features of the new tool are close integration of refinement and proof in a single tool (the same mechanism is used for both), good management of the refinement context, an extensible theory base that allows the tool to be adapted to new application domains, and a flexible user interface.
Isabelle: The next seven hundred theorem provers
 In Lusk and Overbeek [LO88
"... Isabelle [2] is a theorem prover for a large class of logics. The objectlogics are formalized within Isabelle’s metalogic, which is intuitionistic higherorder logic with implication, universal quantifiers, and equality. 1 The implication φ = ⇒ ψ means ‘φ implies ψ’, and expresses logical entailme ..."
Abstract

Cited by 12 (1 self)
 Add to MetaCart
Isabelle [2] is a theorem prover for a large class of logics. The objectlogics are formalized within Isabelle’s metalogic, which is intuitionistic higherorder logic with implication, universal quantifiers, and equality. 1 The implication φ = ⇒ ψ means ‘φ implies ψ’, and expresses logical entailment. The quantification ∧ x.φ means ‘φ is true for all x’, and expresses generality in rules and axiom schemes. The equality a ≡ b means ‘a equals b’, and allows new symbols to be defined as abbreviations. Isabelle takes many ideas from lcf [1]. Formulae are manipulated through the metalanguage Standard ML; proofs can be developed in the backwards direction via tactics and tacticals. But lcf represents the inference rule A B by a function that A&B maps the theorems A and B to the theorem A & B, while Isabelle represents this rule by an axiom in the metalogic: A. B. [A] = ⇒ ([B] = ⇒ [A & B]) Observe how objectlogic formulae are enclosed in brackets: [A]. Higherorder logic uses the typed λcalculus, whose notions of free and bound variables handle quantifiers. So ∀x.A can be represented by All(λx.A), where All is a new constant and A is a formula containing x. More precisely, ∀x.F (x) can be represented by All(F), where the variable F denotes a truthvalued function. Isabelle represents the rule