Results 1  10
of
37
Typing Algorithm in Type Theory with Inheritance
 Proc of POPL'97
, 1997
"... We propose and study a new typing algorithm for dependent type theory. This new algorithm typechecks more terms by using inheritance between classes. This inheritance mechanism turns out to be powerful: it supports multiple inheritance, classes with parameters and uses new abstract classes FUNCLASS ..."
Abstract

Cited by 41 (0 self)
 Add to MetaCart
We propose and study a new typing algorithm for dependent type theory. This new algorithm typechecks more terms by using inheritance between classes. This inheritance mechanism turns out to be powerful: it supports multiple inheritance, classes with parameters and uses new abstract classes FUNCLASS and SORTCLASS (respectively classes of functions and sorts). We also defines classes as records, particularily suitable for the formal development of mathematical theories. This mechanism, implemented in the proof checker Coq, can be adapted to all typed calculus. 1 Introduction In the last years, proof checkers based on type theory appeared as convincing systems to formalize mathematics (especially constructive mathematics) and to prove correctness of software and hardware. In a proof checker, one can interactively build definitions, statements and proofs. The system is then able to check automatically whether the definitions are wellformed and the proofs are correct. Modern systems ar...
Formal Objects in Type Theory Using Very Dependent Types
 In Foundations of Object Oriented Languages 3
, 1996
"... In this paper we present an extension to basic type theory to allow a uniform construction of abstract data types (ADTs) having many of the properties of objects, including abstraction, subtyping, and inheritance. The extension relies on allowing type dependencies for function types to range over ..."
Abstract

Cited by 29 (8 self)
 Add to MetaCart
In this paper we present an extension to basic type theory to allow a uniform construction of abstract data types (ADTs) having many of the properties of objects, including abstraction, subtyping, and inheritance. The extension relies on allowing type dependencies for function types to range over a wellfounded domain. Using the propositionsastypes correspondence, abstract data types can be identified with logical theories, and proofs of the theories are the objects that inhabit the corresponding ADT. 1 Introduction In the past decade, there has been considerable progress in developing formal account of a theory of objects. One property of object oriented languages that make them popular is that they attack the problem of scale: all object oriented languages provide mechanisms for providing software modularity and reuse. In addition, the mechanisms are intuitive enough to be followed easily by novice programmers. During the same decade, the body of formal mathematics has be...
Constructive Category Theory
 IN PROCEEDINGS OF THE JOINT CLICSTYPES WORKSHOP ON CATEGORIES AND TYPE THEORY, GOTEBORG
, 1998
"... ..."
TypeTheoretic Methodology For Practical Programming Languages
 DEPARTMENT OF COMPUTER SCIENCE, CORNELL UNIVERSITY
, 1998
"... The significance of type theory to the theory of programming languages has long been recognized. Advances in programming languages have often derived from understanding that stems from type theory. However, these applications of type theory to practical programming languages have been indirect; the ..."
Abstract

Cited by 22 (3 self)
 Add to MetaCart
The significance of type theory to the theory of programming languages has long been recognized. Advances in programming languages have often derived from understanding that stems from type theory. However, these applications of type theory to practical programming languages have been indirect; the differences between practical languages and type theory have prevented direct connections between the two. This dissertation presents systematic techniques directly relating practical programming languages to type theory. These techniques allow programming languages to be interpreted in the rich mathematical domain of type theory. Such interpretations lead to semantics that are at once denotational and operational, combining the advantages of each, and they also lay the foundation for formal verification of computer programs in type theory. Previous type theories either have not provided adequate expressiveness to interpret practical languages, or have provided such expressiveness at the expense of essential features of the type theory. In particular, no previous type theory has supported a notion of partial functions (needed to interpret recursion in practical languages), and a notion of total functions and objects (needed to reason about data values), and an intrinsic notion of equality (needed for most interesting results). This dissertation presents the first type theory incorporating all three, and discusses issues arising in the design of that type theory. This type theory is used as the target of a typetheoretic semantics for a expressive programming calculus. This calculus may serve as an internal language for a variety of functional programming languages. The semantics is stated as a syntaxdirected embedding of the programming calculus into type theory. A critical point arising in both the type theory and the typetheoretic semantics is the issue of admissibility. Admissibility governs what types it is legal to form recursive functions over. To build a useful type theory for partial functions it is necessary to have a wide class of admissible types. In particular, it is necessary for all the types arising in the typetheoretic semantics to be admissible. In this dissertation I present a class of admissible types that is considerably wider than any previously known class.
Verbalization of highlevel formal proofs
 In Proceedings of the Sixteenth National Conference on Artificial Intelligence
, 1999
"... We propose a new approach to text generation from formal proofs that exploits the highlevel and interactive features of a tacticstyle theorem prover. The design of our system is based on communication conventions identified in a corpus of texts. We show how to use dialogue with the theorem prover ..."
Abstract

Cited by 18 (4 self)
 Add to MetaCart
We propose a new approach to text generation from formal proofs that exploits the highlevel and interactive features of a tacticstyle theorem prover. The design of our system is based on communication conventions identified in a corpus of texts. We show how to use dialogue with the theorem prover to obtain information that is required for communication but is not explicitly used in reasoning.
Moving proofsasprograms into practice
 In: Proceedings of the 12 th IEEE International Conference on Automated Software Engineering, IEEE Computer Society
, 1997
"... Proofs in the Nuprl system, an implementation of a constructive type theory, yield “correctbyconstruction ” programs. In this paper a new methodology is presented for extracting efficient and readable programs from inductive proofs. The resulting extracted programs are in a form suitable for use i ..."
Abstract

Cited by 18 (5 self)
 Add to MetaCart
Proofs in the Nuprl system, an implementation of a constructive type theory, yield “correctbyconstruction ” programs. In this paper a new methodology is presented for extracting efficient and readable programs from inductive proofs. The resulting extracted programs are in a form suitable for use in hierarchical verifications in that they are amenable to clean partial evaluation via extensions to the Nuprl rewrite system. The method is based on two elements: specifications written with careful use of the Nuprl settype to restrict the extracts to strictly computational content; and on proofs that use induction tactics that generate extracts using familiar fixedpoint combinators of the untyped lambda calculus. In this paper the methodology is described and its application is illustrated by example. 1.
Packaging mathematical structures
 THEOREM PROVING IN HIGHER ORDER LOGICS 5674
, 2009
"... This paper proposes generic design patterns to define and combine algebraic structures, using dependent records, coercions and type inference, inside the Coq system. This alternative to telescopes in particular supports multiple inheritance, maximal sharing of notations and theories, and automated ..."
Abstract

Cited by 18 (5 self)
 Add to MetaCart
This paper proposes generic design patterns to define and combine algebraic structures, using dependent records, coercions and type inference, inside the Coq system. This alternative to telescopes in particular supports multiple inheritance, maximal sharing of notations and theories, and automated structure inference. Our methodology is robust enough to handle a hierarchy comprising a broad variety of algebraic structures, from types with a choice operator to algebraically closed fields. Interfaces for the structures enjoy the convenience of a classical setting, without requiring any axiom. Finally, we present two applications of our proof techniques: a key lemma for characterising the discrete logarithm, and a matrix decomposition problem.
The algebraic hierarchy of the FTA Project
 Journal of Symbolic Computation, Special Issue on the Integration of Automated Reasoning and Computer Algebra Systems
, 2002
"... Abstract. We describe a framework for algebraic expressions for the proof assistant Coq. This framework has been developed as part of the FTA project in Nijmegen, in which a complete proof of the fundamental theorem of algebra has been formalized in Coq. The algebraic framework that is described her ..."
Abstract

Cited by 14 (7 self)
 Add to MetaCart
Abstract. We describe a framework for algebraic expressions for the proof assistant Coq. This framework has been developed as part of the FTA project in Nijmegen, in which a complete proof of the fundamental theorem of algebra has been formalized in Coq. The algebraic framework that is described here is both abstract and structured. We apply a combination of record types, coercive subtyping and implicit arguments. The algebraic framework contains a full development of the real and complex numbers and of the rings of polynomials over these fields. The framework is constructive. It does not use anything apart from the Coq logic. The framework has been successfully used to formalize nontrivial mathematics as part of the FTA project.
NuprlLight: An implementation framework for higherorder logics
 IN 14TH INTERNATIONAL CONFERENCE ON AUTOMATED DEDUCTION
, 1997
"... Recent developments in higherorder logics and theorem prover design have led to an ..."
Abstract

Cited by 12 (7 self)
 Add to MetaCart
Recent developments in higherorder logics and theorem prover design have led to an
Types in logic and mathematics before 1940
 Bulletin of Symbolic Logic
, 2002
"... Abstract. In this article, we study the prehistory of type theory up to 1910 and its development between Russell and Whitehead’s Principia Mathematica ([71], 1910–1912) and Church’s simply typed λcalculus of 1940. We first argue that the concept of types has always been present in mathematics, thou ..."
Abstract

Cited by 11 (6 self)
 Add to MetaCart
Abstract. In this article, we study the prehistory of type theory up to 1910 and its development between Russell and Whitehead’s Principia Mathematica ([71], 1910–1912) and Church’s simply typed λcalculus of 1940. We first argue that the concept of types has always been present in mathematics, though nobody was incorporating them explicitly as such, before the end of the 19th century. Then we proceed by describing how the logical paradoxes entered the formal systems of Frege, Cantor and Peano concentrating on Frege’s Grundgesetze der Arithmetik for which Russell applied his famous paradox 1 and this led him to introduce the first theory of types, the Ramified Type Theory (rtt). We present rtt formally using the modern notation for type theory and we discuss how Ramsey, Hilbert and Ackermann removed the orders from rtt leading to the simple theory of types stt. We present stt and Church’s own simply typed λcalculus (λ→C 2) and we finish by comparing rtt, stt and λ→C. §1. Introduction. Nowadays, type theory has many applications and is used in many different disciplines. Even within logic and mathematics, there are many different type systems. They serve several purposes, and are formulated in various ways. But, before 1903 when Russell first introduced