Results 1  10
of
10
System F with type equality coercions
, 2007
"... We introduce System FC, which extends System F with support for nonsyntactic type equality. There are two main extensions: (i) explicit witnesses for type equalities, and (ii) open, nonparametric type functions, given meaning by toplevel equality axioms. Unlike System F, FC is expressive enough to ..."
Abstract

Cited by 73 (25 self)
 Add to MetaCart
We introduce System FC, which extends System F with support for nonsyntactic type equality. There are two main extensions: (i) explicit witnesses for type equalities, and (ii) open, nonparametric type functions, given meaning by toplevel equality axioms. Unlike System F, FC is expressive enough to serve as a target for several different sourcelanguage features, including Haskell’s newtype, generalised algebraic data types, associated types, functional dependencies, and perhaps more besides.
Subtyping Dependent Types
, 2000
"... The need for subtyping in typesystems with dependent types has been realized for some years. But it is hard to prove that systems combining the two features have fundamental properties such as subject reduction. Here we investigate a subtyping extension of the system *P, which is an abstract versio ..."
Abstract

Cited by 68 (6 self)
 Add to MetaCart
The need for subtyping in typesystems with dependent types has been realized for some years. But it is hard to prove that systems combining the two features have fundamental properties such as subject reduction. Here we investigate a subtyping extension of the system *P, which is an abstract version of the type system of the Edinburgh Logical Framework LF. By using an equivalent formulation, we establish some important properties of the new system *P^, including subject reduction. Our analysis culminates in a complete and terminating algorithm which establishes the decidability of typechecking.
Subset coercions in Coq
 In Selected papers from the International Workshop on Types for Proofs and Programs (TYPES’06
, 2006
"... Abstract. We propose a new language for writing programs with dependent types which can be elaborated into partial Coq terms. This language permits to establish a phase distinction between writing and proving algorithms in the Coq environment. Concretely, this means allowing to write algorithms as e ..."
Abstract

Cited by 38 (2 self)
 Add to MetaCart
Abstract. We propose a new language for writing programs with dependent types which can be elaborated into partial Coq terms. This language permits to establish a phase distinction between writing and proving algorithms in the Coq environment. Concretely, this means allowing to write algorithms as easily as in a practical functional programming language whilst giving them as rich a specification as desired and proving that the code meets the specification using the whole Coq proof apparatus. This is achieved by extending conversion to an equivalence which relates types and subsets based on them, a technique originating from the “Predicate subtyping ” feature of PVS and following mathematical convention. The typing judgements can be translated to the Calculus of (Co)Inductive Constructions (Cic) by means of an interpretation which inserts coercions at the appropriate places. These coercions can contain existential variables representing the propositional parts of the final term, corresponding to proof obligations (or PVS typechecking conditions). A prototype implementation of this process is integrated with the Coq environment. 1
Working with Mathematical Structures in Type Theory
"... Abstract. We address the problem of representing mathematical structures in a proof assistant which: 1) is based on a type theory with dependent types, telescopes and a computational version of Leibniz equality; 2) implements coercive subtyping, accepting multiple coherent paths between type familie ..."
Abstract

Cited by 7 (3 self)
 Add to MetaCart
Abstract. We address the problem of representing mathematical structures in a proof assistant which: 1) is based on a type theory with dependent types, telescopes and a computational version of Leibniz equality; 2) implements coercive subtyping, accepting multiple coherent paths between type families; 3) implements a restricted form of higher order unification and type reconstruction. We show how to exploit the previous quite common features to reduce the “syntactic ” gap between pen&paper and formalised algebra. However, to reach our goal we need to propose unification and type reconstruction heuristics that are slightly different from the ones usually implemented. We have implemented them in Matita. 1
Constructor subtyping in the Calculus of Inductive Constructions
 Proceedings of FOSSACS'00, LNCS 1784
, 2000
"... The Calculus of Inductive Constructions (CIC) is a powerful type system, featuring dependent types and inductive definitions, that forms the basis of proofassistant systems such as Coq and Lego. We extend CIC with constructor subtyping, a basic form of subtyping in which an inductive type σ i ..."
Abstract

Cited by 6 (0 self)
 Add to MetaCart
The Calculus of Inductive Constructions (CIC) is a powerful type system, featuring dependent types and inductive definitions, that forms the basis of proofassistant systems such as Coq and Lego. We extend CIC with constructor subtyping, a basic form of subtyping in which an inductive type σ is viewed as a subtype of another inductive type τ if τ has more elements than σ. It is shown that the calculus is wellbehaved and provides a suitable basis for formalizing natural semantics in proofdevelopment systems.
On the role of type decorations in the Calculus of Inductive Constructions
 Proceedings of the 19th Annual Conference of the European Association for Computer Science Logic, volume 3634 of Lecture Notes in Computer Science
, 2005
"... In proof systems like Coq [15], proofchecking involves comparing types modulo #conversion, which is potentially a timeconsuming task. Significant speedups are achieved by compiling proof terms, see [8]. ..."
Abstract

Cited by 4 (0 self)
 Add to MetaCart
In proof systems like Coq [15], proofchecking involves comparing types modulo #conversion, which is potentially a timeconsuming task. Significant speedups are achieved by compiling proof terms, see [8].
Decidability of HigherOrder Subtyping via Logical Relations
, 1997
"... This paper uses logical relations for the first time to study the decidability of typechecking and subtyping. The result is proved for F ! , a language with higherorder subtyping and bounded operator abstraction not previously known to be decidable. The proof is via an intermediate system called ..."
Abstract

Cited by 1 (1 self)
 Add to MetaCart
This paper uses logical relations for the first time to study the decidability of typechecking and subtyping. The result is proved for F ! , a language with higherorder subtyping and bounded operator abstraction not previously known to be decidable. The proof is via an intermediate system called a typed operational semantics, leading to a powerful and uniform technique for showing metatheoretic results of type systems with subtyping, such as strong normalization, subject reduction and decidability of subtyping. 1 Introduction During the last decade, objectoriented programming languages such as Smalltalk, C++, Modula 3, and Java have become popular because they encourage and facilitate software reuse and abstract design. One attempt to give a theoretical understanding of these objectoriented programming languages has been to introduce type systems with features to model constructs from objectoriented programming languages [5, 7], for example bounded quantification [15] and recur...
Pure Type Systems with Subtyping (Extended Abstract)
"... ) Jan Zwanenburg janz@win.tue.nl, Eindhoven University of Technology, The Netherlands c fl SpringerVerlag Abstract. We extend the framework of Pure Type Systems with subtyping, as found in F ! . This leads to a concise description of many existing systems with subtyping, and also to some n ..."
Abstract
 Add to MetaCart
) Jan Zwanenburg janz@win.tue.nl, Eindhoven University of Technology, The Netherlands c fl SpringerVerlag Abstract. We extend the framework of Pure Type Systems with subtyping, as found in F ! . This leads to a concise description of many existing systems with subtyping, and also to some new interesting systems. We develop the metatheory for this framework, including Subject Reduction and Minimal Typing. The main problem was how to formulate the rules of the framework in such a way that we avoid circularities between theory about typing and theory about subtyping. We solve this problem by a simple but rigorous design decision: the subtyping rules do not depend on the typing rules. 1 Introduction The Pure Type Systems (PTSs, see [Bar92]) provide a framework of type systems, in which many particular systems, such as F , F ! , P and the Calculus of Constructions can be concisely expressed and easily compared. Furthermore, the PTSs also include many new interesting sys...