Results 1  10
of
16
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...
Metatheory and Reflection in Theorem Proving: A Survey and Critique
, 1995
"... One way to ensure correctness of the inference performed by computer theorem provers is to force all proofs to be done step by step in a simple, more or less traditional, deductive system. Using techniques pioneered in Edinburgh LCF, this can be made palatable. However, some believe such an appro ..."
Abstract

Cited by 69 (2 self)
 Add to MetaCart
One way to ensure correctness of the inference performed by computer theorem provers is to force all proofs to be done step by step in a simple, more or less traditional, deductive system. Using techniques pioneered in Edinburgh LCF, this can be made palatable. However, some believe such an approach will never be efficient enough for large, complex proofs. One alternative, commonly called reflection, is to analyze proofs using a second layer of logic, a metalogic, and so justify abbreviating or simplifying proofs, making the kinds of shortcuts humans often do or appealing to specialized decision algorithms. In this paper we contrast the fullyexpansive LCF approach with the use of reflection. We put forward arguments to suggest that the inadequacy of the LCF approach has not been adequately demonstrated, and neither has the practical utility of reflection (notwithstanding its undoubted intellectual interest). The LCF system with which we are most concerned is the HOL proof ...
Metalogical Frameworks
, 1992
"... In computer science we speak of implementing a logic; this is done in a programming language, such as Lisp, called here the implementation language. We also reason about the logic, as in understanding how to search for proofs; these arguments are expressed in the metalanguage and conducted in the me ..."
Abstract

Cited by 61 (18 self)
 Add to MetaCart
In computer science we speak of implementing a logic; this is done in a programming language, such as Lisp, called here the implementation language. We also reason about the logic, as in understanding how to search for proofs; these arguments are expressed in the metalanguage and conducted in the metalogic of the object language being implemented. We also reason about the implementation itself, say to know it is correct; this is done in a programming logic. How do all these logics relate? This paper considers that question and more. We show that by taking the view that the metalogic is primary, these other parts are related in standard ways. The metalogic should be suitably rich so that the object logic can be presented as an abstract data type, and it must be suitably computational (or constructive) so that an instance of that type is an implementation. The data type abstractly encodes all that is relevant for metareasoning, i.e., not only the term constructing functions but also the...
Maude as a Formal MetaTool
 FM’99 — Formal Methods, World Congress on Formal Methods in the Development of Computing Systems
, 1999
"... Given the different perspectives from which a complex software system has to be analyzed, the multiplicity of formalisms is unavoidable. This poses two important technical challenges: how to rigorously meet the need to interrelate formalisms, and how to reduce the duplication of effort in tool a ..."
Abstract

Cited by 40 (14 self)
 Add to MetaCart
Given the different perspectives from which a complex software system has to be analyzed, the multiplicity of formalisms is unavoidable. This poses two important technical challenges: how to rigorously meet the need to interrelate formalisms, and how to reduce the duplication of effort in tool and specification building across formalisms. These challenges could be answered by adequate formal metatools that, when given the specification of a formal inference system, generate an efficient inference engine, and when given a specification of two formalisms and a translation, generate an actual translator between them. Similarly, module composition operations that are logicindependent, but that at present require costly implementation efforts for each formalism, could be provided for logics in general by module algebra generator metatools. The foundations of metatools of this kind can be based on a metatheory of general logics. Their actual design and implementation can be based on appropriate logical frameworks having efficient implementations. This paper explains how the reflective logical framework of rewriting logic can be used, in conjunction with an efficient reflective implementation such as the Maude language, to design formal metatools such as those described above. The feasibility of these ideas and techniques has been demonstrated by a number of substantial experiments in which new formal tools and new translations between formalisms, efficient enough to be used in practice, have been generated. 1
A Logic for Reasoning with HigherOrder Abstract Syntax
"... Logical frameworks based on intuitionistic or linear logics with highertype quantification have been successfully used to give highlevel, modular, and formal specifications of many important judgments in the area of programming languages and inference systems. Given such specifications, it is natu ..."
Abstract

Cited by 13 (3 self)
 Add to MetaCart
(Show Context)
Logical frameworks based on intuitionistic or linear logics with highertype quantification have been successfully used to give highlevel, modular, and formal specifications of many important judgments in the area of programming languages and inference systems. Given such specifications, it is natural to consider proving properties about the specified systems in the framework: for example, given the specification of evaluation for a functional programming language, prove that the language is deterministic or that the subjectreduction theorem holds. One challenge in developing a framework for such reasoning is that higherorder abstract syntax (HOAS), an elegant and declarative treatment of objectlevel abstraction and substitution,is difficult to treat in proofs involving induction. In this paper, we present a metalogic that can be used to reason about judgments coded using HOAS; this metalogic is an extension of a simple intuitionistic logic that admits higherorder quantification over simply typedterms (key ingredients for HOAS) as well as induction and a notion of definition. The latter concept of a definition is a prooftheoretic device that allows certain theories to be treated as “closed ” or as defining fixed points. The resulting metalogic can specify various logical frameworks and a large range of judgments regarding programming languages and inference systems. We illustrate this point through examples, including the admissibility of cut for a simple logic and subject reduction, determinacy of evaluation, and the equivalence of SOS and natural semantics presentations of evaluation for a simple functional programming language. 1.
Transitive closure and the mechanization of mathematics
 Thirtyfive Years of Automating Mathematics
, 2003
"... Abstract. We argue that the concept of transitive closure is the key for understanding nitary inductive denitions and reasoning, and we provide evidence for the thesis that logics which are based on it (in which induction is a logical rule) are the right logical framework for the formalization and ..."
Abstract

Cited by 13 (5 self)
 Add to MetaCart
(Show Context)
Abstract. We argue that the concept of transitive closure is the key for understanding nitary inductive denitions and reasoning, and we provide evidence for the thesis that logics which are based on it (in which induction is a logical rule) are the right logical framework for the formalization and mechanization of Mathematics. We investigate the expressive power of languages with the most basic transitive closure operation TC. We show that with TC one can dene all recursive predicates and functions from 0, the successor function and addition, yet with TC alone addition is not denable from 0 and the successor function. However, in the presence of a pairing function, TC does suÆce for having all types of nitary inductive denitions of relations and functions. This result is used for presenting a simple version of Feferman's framework FS 0, demonstrating that TClogics provide in general an excellent framework for mechanizing formal systems. An interesting side eect of these results is a simple characterization of recursive enumerability and a new, concise version of Church thesis. We end with a use of TC for a formalization of Set Theory which is based on purely syntactical considerations, and re
ects real mathematical practice. 1.
Logic Frameworks for Logic Programs
, 1994
"... . We show how logical frameworks can provide a basis for logic program synthesis. With them, we may use firstorder logic as a foundation to formalize and derive rules that constitute program development calculi. Derived rules may be in turn applied to synthesize logic programs using higherorder re ..."
Abstract

Cited by 12 (7 self)
 Add to MetaCart
. We show how logical frameworks can provide a basis for logic program synthesis. With them, we may use firstorder logic as a foundation to formalize and derive rules that constitute program development calculi. Derived rules may be in turn applied to synthesize logic programs using higherorder resolution during proof that programs meet their specifications. We illustrate this using Paulson's Isabelle system to derive and use a simple synthesis calculus based on equivalence preserving transformations. 1 Introduction Background In 1969 Dana Scott developed his Logic for Computable Functions and with it a model of functional program computation. Motivated by this model, Robin Milner developed the theorem prover LCF whose logic PP used Scott's theory to reason about program correctness. The LCF project [13] established a paradigm of formalizing a programming logic on a machine and using it to formalize different theories of functional programs (e.g., strict and lazy evaluation) and the...
On Extensibility of Proof Checkers
 in Dybjer, Nordstrom and Smith (eds), Types for Proofs and Programs: International Workshop TYPES'94, Bastad
, 1995
"... This paper is about mechanical checking of formal mathematics. Given some formal system, we want to construct derivations in that system, or check the correctness of putative derivations; our job is not to ascertain truth (that is the job of the designer of our formal system), but only proof. Howeve ..."
Abstract

Cited by 10 (2 self)
 Add to MetaCart
(Show Context)
This paper is about mechanical checking of formal mathematics. Given some formal system, we want to construct derivations in that system, or check the correctness of putative derivations; our job is not to ascertain truth (that is the job of the designer of our formal system), but only proof. However, we are quite rigid about this: only a derivation in our given formal system will do; nothing else counts as evidence! Thus it is not a collection of judgements (provability), or a consequence relation [Avr91] (derivability) we are interested in, but the derivations themselves; the formal system used to present a logic is important. This viewpoint seems forced on us by our intention to actually do formal mathematics. There is still a question, however, revolving around whether we insist on objects that are immediately recognisable as proofs (direct proofs), or will accept some metanotations that only compute to proofs (indirect proofs). For example, we informally refer to previously proved results, lemmas and theorems, without actually inserting the texts of their proofs in our argument. Such an argument could be made into a direct proof by replacing all references to previous results by their direct proofs, so it might be accepted as a kind of indirect proof. In fact, even for very simple formal systems, such an indirect proof may compute to a very much bigger direct proof, and if we will only accept a fully expanded direct proof (in a mechanical proof checker for example), we will not be able to do much mathematics. It is well known that this notion of referring to previous results can be internalized in a logic as a cut rule, or Modus Ponens. In a logic containing a cut rule, proofs containing cuts are considered direct proofs, and can be directly accepted by a proof ch...
A Theory and its Metatheory in FS 0
"... . Feferman has proposed FS 0 , a theory of finitary inductive systems, as a framework theory that allows a user to reason both in and about an encoded theory. I look here at how practical FS 0 really is. To this end I formalise a sequent calculus presentation of classical propositional logic, and sh ..."
Abstract

Cited by 7 (0 self)
 Add to MetaCart
. Feferman has proposed FS 0 , a theory of finitary inductive systems, as a framework theory that allows a user to reason both in and about an encoded theory. I look here at how practical FS 0 really is. To this end I formalise a sequent calculus presentation of classical propositional logic, and show this can be used for work in both the theory and the metatheory. the latter is illustrated with a discussion of a proof of Gentzen's Hauptsatz. Contents x 1 Introduction 2 x 1.1 Background : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 2 x 1.2 Outline of paper : : : : : : : : : : : : : : : : : : : : : : : : : : : 3 x 2 The theory FS 0 and notational conventions 4 x 2.1 What is FS 0 : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 4 x 3 An informal description of Gentzen's calculus 5 x 3.1 The language : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 5 x 3.2 The calculus for classical propositional logic : : : : : : : : : : : : 6 x 4 Formalising the ...