Results 1  10
of
11
Programming With Types
 CORNELL UNIVERSITY
, 2002
"... Runtime type analysis is an increasingly important linguistic mechanism in modern programming languages. Language runtime systems use it to implement services such as accurate garbage collection, serialization, cloning and structural equality. Component frameworks rely on it to provide reflection m ..."
Abstract

Cited by 13 (2 self)
 Add to MetaCart
Runtime type analysis is an increasingly important linguistic mechanism in modern programming languages. Language runtime systems use it to implement services such as accurate garbage collection, serialization, cloning and structural equality. Component frameworks rely on it to provide reflection mechanisms so they may discover and interact with program interfaces dynamically. Runtime type analysis is also crucial for large, distributed systems that must be dynamically extended, because it allows those systems to check program invariants when new code and new forms of data are added. Finally, many generic userlevel algorithms for iteration, pattern matching, and unification can be defined through type analysis mechanisms. However, existing frameworks for runtime type analysis were designed for simple type systems. They do not scale well to the sophisticated type systems of modern and nextgeneration programming languages that include complex constructs such as firstclass abstract types, recursive types, objects, and type parameterization. In addition, facilities to support type analysis often require complicated
Certification of a type inference tool for ML: DamasMilner within Coq
 Journal of Automated Reasoning
, 1999
"... . We develop a formal proof of the ML type inference algorithm, within the Coq proof assistant. We are much concerned with methodology and reusability of such a mechanization. This proof is also necessary to hope the certification of a complete ML compiler in the future. In this paper we present th ..."
Abstract

Cited by 10 (1 self)
 Add to MetaCart
. We develop a formal proof of the ML type inference algorithm, within the Coq proof assistant. We are much concerned with methodology and reusability of such a mechanization. This proof is also necessary to hope the certification of a complete ML compiler in the future. In this paper we present the Coq formalization of the typing system and its inference algorithm. We establish formally the correctness and the completeness of the type inference algorithm with respect to the typing rules of the language. We describe and comment the mechanized proofs. 1. Introduction Our goal is to realize a verified formal proof of the ML type inference algorithm, within the Coq proof assistant. Though this algorithm has been proved since quite a long time, this proof had never been mechanized entirely up to now. Simultaneously and independently of our work, D. Nazareth and T. Nipkow have carried out such a formal verification in the theorem prover Isabelle/HOL for simplytyped terms [11] and then ...
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
(Show Context)
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 10 (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.
Integrating Proof Assistants as Reasoning and Verification Tools into a Scientific WYSIWYG Editor
, 2005
"... A major problem for the acceptance of mathematical proof assistance systems in mathematical practise is the shortcomings of their user interfaces. Often the interfaces are developed bottomup starting from the mathematical proof assistance system. Therefore they usually focus on the individual syste ..."
Abstract

Cited by 3 (1 self)
 Add to MetaCart
A major problem for the acceptance of mathematical proof assistance systems in mathematical practise is the shortcomings of their user interfaces. Often the interfaces are developed bottomup starting from the mathematical proof assistance system. Therefore they usually focus on the individual system and its proof development paradigm and neglect traditional forms to communicate proofs as used by mathematicians. To address this problem we propose a topdown approach where we start from an existing scientific WYSIWYG text editor which supports the preparation of mathematical publications in high quality typesetting and integrate a mathematical proof assistance system to support proof development and validation. Concretely, we extend the document format of the text editor by semantic markup to encode formal mathematical content and to communicate with the formal system. Additionally we provide interaction markup defining contextsensitive means to control the mathematical proof assistance system through the text editor.
Reflection and PropositionsasTypes
"... Reection is the ability of a deductive system to internalize aspects of its own structure and thereby reason to some extent about itself. In this paper we present a theoretical framework for exploring reection in type theories that use the \PropositionsasTypes" principle, such as MartinL ..."
Abstract
 Add to MetaCart
Reection is the ability of a deductive system to internalize aspects of its own structure and thereby reason to some extent about itself. In this paper we present a theoretical framework for exploring reection in type theories that use the \PropositionsasTypes" principle, such as MartinLof style theories. One of the main results is that it is unnecessary to build a complete Godel style \reection" layer on top of the logical theory. This makes it possible to use our framework for an ecient implementation of reection in theorem provers for such type theories. We are doing this for the NuPRL and MetaPRL systems.
Expressing and Implementing the Computational Content Implicit in Smullyan’s Account of Boolean Valuations ∗
, 2004
"... In Smullyan’s classic book, FirstOrder Logic [21], the notion of a Boolean valuation is central in motivating his analytical tableau proof system. Smullyan shows that these valuations are unique if they exist, and then he sketches an existence proof. In addition he suggests a possible computational ..."
Abstract
 Add to MetaCart
(Show Context)
In Smullyan’s classic book, FirstOrder Logic [21], the notion of a Boolean valuation is central in motivating his analytical tableau proof system. Smullyan shows that these valuations are unique if they exist, and then he sketches an existence proof. In addition he suggests a possible computational procedure for finding a Boolean valuation, but it is not related to to the existence proof. A computer scientist would like to see the obvious explicit recursive algorithm for evaluating propositional formulas and a demonstration that the algorithm has the properties of a Boolean valuation. Ideally, the algorithm would be derived from the existence proof. It turns out to be unexpectedly difficult to find a natural existence proof from which the algorithm can be extracted, and it turns out that the implicit computational content of Smullyan’s argument is not found where one might expect it. We show that using the notion of a very dependent function type, it is possible to specify the Boolean valuation and prove its existence constructively so that the natural recursive algorithm is extracted and is known to have the mathematically required properties by virtue of its construction. We illustrate all of these points using the Nuprl proof development system [9].
Compiling HOL4 to Native Code
"... Abstract. We present a framework for extracting and compiling proof tools and theories from a higher order logic theorem prover, so that the theorem prover can be used as a platform for supporting reasoning in other applications. The framework is demonstrated on a small application that uses HOL4 to ..."
Abstract
 Add to MetaCart
(Show Context)
Abstract. We present a framework for extracting and compiling proof tools and theories from a higher order logic theorem prover, so that the theorem prover can be used as a platform for supporting reasoning in other applications. The framework is demonstrated on a small application that uses HOL4 to find proofs of arbitrary first order logic formulas. 1
Dependent Types: Easy as PIE WorkInProgress Project Description
"... Dependent type systems allow for a rich set of program properties to be expressed and mechanically verified via type checking. However, despite their significant expressive power, dependent types have not yet advanced into mainstream programming languages. We believe the reason behind this omission ..."
Abstract
 Add to MetaCart
(Show Context)
Dependent type systems allow for a rich set of program properties to be expressed and mechanically verified via type checking. However, despite their significant expressive power, dependent types have not yet advanced into mainstream programming languages. We believe the reason behind this omission is the large design space for dependently typed functional programming languages, and the consequent lack of experience in dependentlytyped programming and language implementations. In this newlystarted project, we lay out the design considerations for a generalpurpose, effectful, functional, dependentlytyped language, called PIE. The goal of this project is to promote dependentlytyped programming to a mainstream practice. 1