Results 1  10
of
49
Rewriting Logic as a Logical and Semantic Framework
, 1993
"... Rewriting logic [72] is proposed as a logical framework in which other logics can be represented, and as a semantic framework for the specification of languages and systems. Using concepts from the theory of general logics [70], representations of an object logic L in a framework logic F are und ..."
Abstract

Cited by 169 (57 self)
 Add to MetaCart
Rewriting logic [72] is proposed as a logical framework in which other logics can be represented, and as a semantic framework for the specification of languages and systems. Using concepts from the theory of general logics [70], representations of an object logic L in a framework logic F are understood as mappings L ! F that translate one logic into the other in a conservative way. The ease with which such maps can be defined for a number of quite different logics of interest, including equational logic, Horn logic with equality, linear logic, logics with quantifiers, and any sequent calculus presentation of a logic for a very general notion of "sequent," is discussed in detail. Using the fact that rewriting logic is reflective, it is often possible to reify inside rewriting logic itself a representation map L ! RWLogic for the finitely presentable theories of L. Such a reification takes the form of a map between the abstract data types representing the finitary theories of...
Equations and rewrite rules: a survey
 In Formal Language Theory: Perspectives and Open Problems
, 1980
"... bY ..."
Theorem Proving Modulo
 Journal of Automated Reasoning
"... Abstract. Deduction modulo is a way to remove computational arguments from proofs by reasoning modulo a congruence on propositions. Such a technique, issued from automated theorem proving, is of much wider interest because it permits to separate computations and deductions in a clean way. The first ..."
Abstract

Cited by 112 (18 self)
 Add to MetaCart
(Show Context)
Abstract. Deduction modulo is a way to remove computational arguments from proofs by reasoning modulo a congruence on propositions. Such a technique, issued from automated theorem proving, is of much wider interest because it permits to separate computations and deductions in a clean way. The first contribution of this paper is to define a sequent calculus modulo that gives a proof theoretic account of the combination of computations and deductions. The congruence on propositions is handled via rewrite rules and equational axioms. Rewrite rules apply to terms and also directly to atomic propositions. The second contribution is to give a complete proof search method, called Extended Narrowing and Resolution (ENAR), for theorem proving modulo such congruences. The completeness of this method is proved with respect to provability in sequent calculus modulo. An important application is that higherorder logic can be presented as a theory modulo. Applying the Extended Narrowing and Resolution method to this presentation of higherorder logic subsumes full higherorder resolution.
Higherorder Unification via Explicit Substitutions (Extended Abstract)
 Proceedings of LICS'95
, 1995
"... Higherorder unification is equational unification for βηconversion. But it is not firstorder equational unification, as substitution has to avoid capture. In this paper higherorder unification is reduced to firstorder equational unification in a suitable theory: the &lambda ..."
Abstract

Cited by 109 (13 self)
 Add to MetaCart
Higherorder unification is equational unification for &beta;&eta;conversion. But it is not firstorder equational unification, as substitution has to avoid capture. In this paper higherorder unification is reduced to firstorder equational unification in a suitable theory: the &lambda;&sigma;calculus of explicit substitutions.
OracleBased Checking of Untrusted Software
, 2001
"... We present a variant of ProofCarrying Code (PCC) in which the trusted inference rules are represented as a higherorder logic program, the proof checker is replaced by a nondeterministic higherorder logic interpreter and the proof by an oracle implemented as a stream of bits that resolve the nondet ..."
Abstract

Cited by 61 (4 self)
 Add to MetaCart
(Show Context)
We present a variant of ProofCarrying Code (PCC) in which the trusted inference rules are represented as a higherorder logic program, the proof checker is replaced by a nondeterministic higherorder logic interpreter and the proof by an oracle implemented as a stream of bits that resolve the nondeterministic interpretation choices. In this setting, ProofCarrying Code allows the receiver of the code the luxury of using nondeterminism in constructing a simple yet powerful checking procedure. This oraclebased variant of PCC is able to adapt quite naturally to situations when the property being checked is simple or there is a fairly directed search procedure for it. As an example, we demonstrate that if PCC is used to verify type safety of assembly language programs compiled from Java source programs, the oracles that are needed are on the average just 12% of the size of the code, which represents an improvement of a factor of 30 over previous syntactic representations of PCC proofs. ...
Efficient Representation and Validation of Logical Proofs
, 1997
"... This report describes a framework for representing and validating formal proofs in various axiomatic systems. The framework is based on the Edinburgh Logical Framework (LF) but is optimized for minimizing the size of proofs and the complexity of proof validation, by removing redundant representation ..."
Abstract

Cited by 47 (7 self)
 Add to MetaCart
This report describes a framework for representing and validating formal proofs in various axiomatic systems. The framework is based on the Edinburgh Logical Framework (LF) but is optimized for minimizing the size of proofs and the complexity of proof validation, by removing redundant representation components. Several variants of representation algorithms are presented with the resulting representations being a factor of 15 smaller than similar LF representations. The validation algorithm is a reconstruction algorithm that runs about 7 times faster than LF typechecking. We present a full proof of correctness of the reconstruction algorithm and hints for the efficient implementation using explicit substitutions. We conclude with a quantitative analysis of the algorithms. This research was sponsored in part by the Advanced Research Projects Agency CSTO under the title "The Fox Project: Advanced Languages for Systems Software," ARPA Order No. C533, issued by ESC/ENS under Contract No. F1...
Mechanizing structural induction
 Theor. Comput. Sci
, 1979
"... This thesis has been submitted in fulfilment of the requirements for a postgraduate degree (e.g. PhD, MPhil, DClinPsychol) at the University of Edinburgh. Please note the following terms and conditions of use: • This work is protected by copyright and other intellectual property rights, which are re ..."
Abstract

Cited by 42 (0 self)
 Add to MetaCart
This thesis has been submitted in fulfilment of the requirements for a postgraduate degree (e.g. PhD, MPhil, DClinPsychol) at the University of Edinburgh. Please note the following terms and conditions of use: • This work is protected by copyright and other intellectual property rights, which are retained by the thesis author, unless otherwise stated. • A copy can be downloaded for personal noncommercial research or study, without prior permission or charge. • This thesis cannot be reproduced or quoted extensively from without first obtaining permission in writing from the author. • The content must not be changed in any way or sold commercially in any format or medium without the formal permission of the author. • When referring to this work, full bibliographic details including the author, title,
Type inference and semiunification
 In Proceedings of the ACM Conference on LISP and Functional Programming (LFP ) (Snowbird
, 1988
"... In the last ten years declarationfree programming languages with a polymorphic typing discipline (ML, B) have been developed to approximate the flexibility and conciseness of dynamically typed languages (LISP, SETL) while retaining the safety and execution efficiency of conventional statically type ..."
Abstract

Cited by 32 (7 self)
 Add to MetaCart
In the last ten years declarationfree programming languages with a polymorphic typing discipline (ML, B) have been developed to approximate the flexibility and conciseness of dynamically typed languages (LISP, SETL) while retaining the safety and execution efficiency of conventional statically typed languages (Algol68, Pascal). These polymorphic languages can be type checked at compile time, yet allow functions whose arguments range over a variety of types. We investigate several polymorphic type systems, the most powerful of which, termed MilnerMycroft Calculus, extends the socalled letpolymorphism found in, e.g., ML with a polymorphic typing rule for recursive definitions. We show that semiunification, the problem of solving inequalities over firstorder terms, characterizes type checking in the MilnerMycroft Calculus to polynomial time, even in the restricted case where nested definitions are disallowed. This permits us to extend some infeasibility results for related combinatorial problems to type inference and to correct several claims and statements in the literature. We prove the existence of unique most general solutions of term inequalities, called most general semiunifiers, and present an algorithm for computing them that terminates for all known inputs due to a novel “extended occurs check”. We conjecture this algorithm to be
CLARE: a contextual reasoning and cooperative response framework for the Core Language Engine
, 1992
"... SRI, with some discussion of experimentation with the software by the other partners. Lowlevel interfacing issues and a guide to using the system are covered in a manual provided with the final release of the software. The project also involved a study by Cambridge University Computer Laboratory on ..."
Abstract

Cited by 24 (3 self)
 Add to MetaCart
SRI, with some discussion of experimentation with the software by the other partners. Lowlevel interfacing issues and a guide to using the system are covered in a manual provided with the final release of the software. The project also involved a study by Cambridge University Computer Laboratory on evaluating natural language processing systems. A digest of the report for this study appears at the end of the present report. CLARE was designed as a natural language processing system with facilities for reasoning and understanding in context and for generating cooperative responses. The work plan for the project required both further development of the Core Language Engine (CLE) natural language processor and the design and implementation of new components for reasoning and response generation. All the milestones set in the project plan were achieved, the final system including the following capabilities: • Wider coverage of English syntax and semantics than the original CLE system. This is quantified in the report.
Unification of Infinite Sets of Terms Schematized by Primal Grammars
 THEORETICAL COMPUTER SCIENCE
, 1996
"... Infinite sets of terms appear frequently at different places in computer science. On the other hand, several practically oriented parts of logic and computer science require the manipulated objects to be finite or finitely representable. Schematizations present a suitable formalism to manipulate fin ..."
Abstract

Cited by 24 (3 self)
 Add to MetaCart
Infinite sets of terms appear frequently at different places in computer science. On the other hand, several practically oriented parts of logic and computer science require the manipulated objects to be finite or finitely representable. Schematizations present a suitable formalism to manipulate finitely infinite sets of terms. Since schematizations provide a different approach to solve the same kind of problems as constraints do, they can be viewed as a new type of constraints. The paper presents a new recurrent schematization called primal grammars. The main idea behind the primal grammars is to use primitive recursion as the generating engine of infinite sets. The evaluation of primal grammars is based on substitution and rewriting, hence no particular semantics for them is necessary. This fact allows also a natural integration of primal grammars into Prolog, into functional languages or into other rewritebased applications. Primal grammars have a decidable unification problem and ...