Results 1  10
of
13
A Computational Approach to Reflective MetaReasoning about Languages with Bindings
 In MERLIN ’05: Proceedings of the 3rd ACM SIGPLAN workshop on Mechanized
, 2005
"... We present a foundation for a computational metatheory of languages with bindings implemented in a computeraided formal reasoning environment. Our theory provides the ability to reason abstractly about operators, languages, openended languages, classes of languages, etc. The theory is based on th ..."
Abstract

Cited by 12 (2 self)
 Add to MetaCart
We present a foundation for a computational metatheory of languages with bindings implemented in a computeraided formal reasoning environment. Our theory provides the ability to reason abstractly about operators, languages, openended languages, classes of languages, etc. The theory is based on the ideas of higherorder abstract syntax, with an appropriate induction principle parameterized over the language (i.e. a set of operators) being used. In our approach, both the bound and free variables are treated uniformly and this uniform treatment extends naturally to variablelength bindings. The implementation is reflective, namely there is a natural mapping between the metalanguage of the theoremprover and the object language of our theory. The object language substitution operation is mapped to the metalanguage substitution and does not need to be defined recursively. Our approach does not require designing a custom type theory; in this paper we describe the implementation of this foundational theory within a generalpurpose type theory. This work is fully implemented in the MetaPRL theorem prover, using the preexisting NuPRLlike MartinL ofstyle computational type theory. Based on this implementation, we lay out an outline for a framework for programming language experimentation and exploration as well as a general reflective reasoning framework. This paper also includes a short survey of the existing approaches to syntactic reflection. 1
Formal reasoning about communication systems I: Embedding ML into type theory
, 1997
"... Abstract. We present a semantically correct embedding of a subset of the Ocaml programming language into the type theory of NuPRL. The subset is that needed to build the Ensemble group communication system. We describe the essential methodologies for representing language constructs by typetheoreti ..."
Abstract

Cited by 12 (9 self)
 Add to MetaCart
Abstract. We present a semantically correct embedding of a subset of the Ocaml programming language into the type theory of NuPRL. The subset is that needed to build the Ensemble group communication system. We describe the essential methodologies for representing language constructs by typetheoretical expressions. Tactics representing derived inference rules and a programming logic for these constructs will be discussed as well as algorithms for translating an Ocamlprogram into NuPRLobjects and vice versa. The formal representations and the translation algorithms will serve as the foundation for the development of automated reasoning tools for the
Constructively Formalizing Automata Theory
 Proof, Language and Interaction: Essays in Honour of Robert Milner
, 1997
"... We present a constructive formalization of the MyhillNerode theorem on the minimization of finite automata that follows the account in Hopcroft and Ullman's book Formal Languages and Their Relation to Automata. We chose to formalize this theorem because it illustrates many points critical to f ..."
Abstract

Cited by 11 (0 self)
 Add to MetaCart
(Show Context)
We present a constructive formalization of the MyhillNerode theorem on the minimization of finite automata that follows the account in Hopcroft and Ullman's book Formal Languages and Their Relation to Automata. We chose to formalize this theorem because it illustrates many points critical to formalization of computational mathematics, especially the extraction of an important algorithm from a proof as a method of knowing that the algorithm is correct. It also gave us an opportunity to experiment with a constructive implementation of quotient sets. We carried out the formalization in Nuprl, an interactive theorem prover based on constructive type theory. Nuprl borrows an implementation of the ML language from the LCF system of Milner, Gordon, and Wadsworth, and makes heavy use of the notion of tactic pioneered by Milner in LCF. We are interested in the pedagogical value of electronic formal mathematical texts and have put our formalization on the World Wide Web. Readers are invited to ...
Fast Tacticbased Theorem Proving
 TPHOLs 2000, LNCS 1869
, 2000
"... Theorem provers for higherorder logics often use tactics to implement automated proof search. Tactics use a generalpurpose metalanguage to implement both generalpurpose reasoning and computationally intensive domainspecific proof procedures. The generality of tactic provers has a performance pe ..."
Abstract

Cited by 10 (4 self)
 Add to MetaCart
Theorem provers for higherorder logics often use tactics to implement automated proof search. Tactics use a generalpurpose metalanguage to implement both generalpurpose reasoning and computationally intensive domainspecific proof procedures. The generality of tactic provers has a performance penalty; the speed of proof search lags far behind specialpurpose provers. We present a new modular proving architecture that significantly increases the speed of the core logic engine.
MetaPRL  A Modular Logical Environment
, 2003
"... MetaPRL is the latest system to come out of over twenty five years of research by the Cornell PRL group. While initially created at Cornell, MetaPRL is currently a collaborative project involving several universities in several countries. The MetaPRL system combines the properties of an interactive ..."
Abstract

Cited by 8 (2 self)
 Add to MetaCart
(Show Context)
MetaPRL is the latest system to come out of over twenty five years of research by the Cornell PRL group. While initially created at Cornell, MetaPRL is currently a collaborative project involving several universities in several countries. The MetaPRL system combines the properties of an interactive LCFstyle tacticbased proof assistant, a logical framework, a logical programming environment, and a formal methods programming toolkit. MetaPRL is distributed under an opensource license and can be downloaded from http://metaprl.org/. This paper provides an overview of the system focusing on the features that did not exist in the previous generations of PRL systems.
Faulttolerant distributed theorem proving
, 1999
"... Higherorder logics are expressive tools for tasks ranging from formalizing the foundations of mathematics to largescale software verification and synthesis. Because of their complexity, proofs in higherorder logics often use a combination of interactive proving together with computationallyinten ..."
Abstract

Cited by 8 (5 self)
 Add to MetaCart
(Show Context)
Higherorder logics are expressive tools for tasks ranging from formalizing the foundations of mathematics to largescale software verification and synthesis. Because of their complexity, proofs in higherorder logics often use a combination of interactive proving together with computationallyintensive tactic applications that perform proof automation. As problems and proof automation become more sophisticated, these proofs represent substantial investments  each interactive step may represent several hours of design time. We present an implementation of a distributed proving architecture to address the problems of speed, availability, and reliability in tactic provers. This architecture is implemented as a module in the MetaPRL logical framework. The implementation supports arbitrary process joins and allbutone process failures at any time during a proof. Proof distribution is completely transparent; the existing tactic base is unmodified.
Quotient Types: A Modular Approach
 ITUT Recommendation H.324
, 2002
"... In this paper we introduce a new approach to axiomatizing quotient types in type theory. We suggest replacing the existing monolithic rule set by a modular set of rules for a specially chosen set of primitive operations. This modular formalization of quotient types turns out to be much easier to use ..."
Abstract

Cited by 7 (3 self)
 Add to MetaCart
(Show Context)
In this paper we introduce a new approach to axiomatizing quotient types in type theory. We suggest replacing the existing monolithic rule set by a modular set of rules for a specially chosen set of primitive operations. This modular formalization of quotient types turns out to be much easier to use and free of many limitations of the traditional monolithic formalization. To illustrate the advantages of the new approach, we show how the type of collections (that is known to be very hard to formalize using traditional quotient types) can be naturally formalized using the new primitives. We also show how modularity allows us to reuse one of the new primitives to simplify and enhance the rules for the set types.
A Predicative TypeTheoretic Interpretation of Objects
, 1997
"... Predicative type theories are powerful tools for giving foundational interpretations of programming languages. Due to their explicit inductive construction, predicative type theories have multiple mathematical models that provide precise definitions of programming language features. However, not all ..."
Abstract

Cited by 4 (0 self)
 Add to MetaCart
(Show Context)
Predicative type theories are powerful tools for giving foundational interpretations of programming languages. Due to their explicit inductive construction, predicative type theories have multiple mathematical models that provide precise definitions of programming language features. However, not all features have predicative interpretations, and current interpretations of objects rely on impredicative type theories, such as Girard's System F, because of the difficulty in specifying a type for objects in the presence of selfapplication. In this paper we show that objects have a predicative interpretation. We show that predicativity is associated with method monotonicity, and that binary methods prevent the inductive type construction. Our interpretation differs from impredicative accounts by replacing the use of recursive types for objects with conditions for method polymorphism over the self type. We further give a propositional meaning to objects in the type theory, providing a calc...
Formalizing Automata II: Decidable Properties
"... Is it possible to create formal proofs of interesting mathematical theorems which are mechanically checked in every detail and yet are readable and even faithful to the best expositions of those results in the literature? This paper answers that question positively for theorems about decidable prope ..."
Abstract

Cited by 2 (0 self)
 Add to MetaCart
Is it possible to create formal proofs of interesting mathematical theorems which are mechanically checked in every detail and yet are readable and even faithful to the best expositions of those results in the literature? This paper answers that question positively for theorems about decidable properties of nite automata. The exposition is from Hopcroft and Ullman's classic 1969 textbook Formal Languages and Their Relation to Automata. This paper describes a successful formalization which is faithful to that book. The requirement of being faithful to the book has unexpected consequences, namely that the underlying formal theory must include primitive notions of computability. This requirement makes a constructive formalization especially suitable. It also opens the possibility ofusingthe formal proofs to decide properties of automata. The paper shows how to do this. 1
Rewriting UNITY
"... In this paper we describe the implementation of the UNITY formalism as an extension of generalpurpose languages and show its translation to C abstract syntax using Phobos, our generic frontend in the Mojave compiler. Phobos uses term rewriting to define the syntax and semantics of arbitrary la ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
(Show Context)
In this paper we describe the implementation of the UNITY formalism as an extension of generalpurpose languages and show its translation to C abstract syntax using Phobos, our generic frontend in the Mojave compiler. Phobos uses term rewriting to define the syntax and semantics of arbitrary languages, and automates their translation to an internal compiler representation. Furthermore, it provides access to formal reasoning capabilities using the integrated MetaPRL theorem prover, through which advanced optimizations and transformations can be implemented or formal proofs derived.