Results 1  10
of
14
Cayenne  a Language With Dependent Types
 IN INTERNATIONAL CONFERENCE ON FUNCTIONAL PROGRAMMING
, 1998
"... Cayenne is a Haskelllike language. The main difference between Haskell and Cayenne is that Cayenne has dependent types, i.e., the result type of a function may depend on the argument value, and types of record components (which can be types or values) may depend on other components. Cayenne also co ..."
Abstract

Cited by 238 (0 self)
 Add to MetaCart
Cayenne is a Haskelllike language. The main difference between Haskell and Cayenne is that Cayenne has dependent types, i.e., the result type of a function may depend on the argument value, and types of record components (which can be types or values) may depend on other components. Cayenne also combines the syntactic categories for value expressions and type expressions; thus reducing the number of language concepts. Having dependent types and combined type and value expressions makes the language very powerful. It is powerful enough that a special module concept is unnecessary; ordinary records suffice. It is also powerful enough to encode predicate logic at the type level, allowing types to be used as specifications of programs. However, this power comes at a cost: type checking of Cayenne is undecidable. While this may appear to be a steep price to pay, it seems to work well in practice.
The Implementation of ALF  a Proof Editor based on MartinLöf's Monomorphic Type Theory with Explicit Substitution
, 1995
"... This thesis describes the implementation of ALF, which is an interactive proof editor based on MartinLöf's type theory with explicit substitutions. ALF is a general purpose proof assistant, in which different logics can be represented. Proof objects are manipulated directly, by the usual editi ..."
Abstract

Cited by 48 (0 self)
 Add to MetaCart
This thesis describes the implementation of ALF, which is an interactive proof editor based on MartinLöf's type theory with explicit substitutions. ALF is a general purpose proof assistant, in which different logics can be represented. Proof objects are manipulated directly, by the usual editing operations. A partial proof is represented as an incomplete proof object, i.e., a proof object containing placeholders. A modular type/proof checking algorithm for complete proof objects is presented, and it is proved sound and complete assuming some basic meta theory properties of the substitution calculus. The algorithm is extended to handle incomplete objects in such a way that the type checking problem is reduced to a unication problem, i.e., the problem of finding instantiations to the placeholders in the object. Placeholders are represented together with their expected type and local context. We show that checking the correctness of instantiations can be localised, which means that it is e...
Setoids in Type Theory
, 2000
"... Formalising mathematics in dependent type theory often requires to use setoids, i.e. types with an explicit equality relation, as a representation of sets. This paper surveys some possible denitions of setoids and assesses their suitability as a basis for developing mathematics. In particular, we ..."
Abstract

Cited by 44 (4 self)
 Add to MetaCart
Formalising mathematics in dependent type theory often requires to use setoids, i.e. types with an explicit equality relation, as a representation of sets. This paper surveys some possible denitions of setoids and assesses their suitability as a basis for developing mathematics. In particular, we argue that a commonly advocated approach to partial setoids is unsuitable, and more generally that total setoids seem better suited for formalising mathematics. 1
From SOS Rules to Proof Principles: An Operational Metatheory for Functional Languages
 In Proc. POPL'97, the 24 th ACM SIGPLANSIGACT Symposium on Principles of Programming Languages
, 1997
"... Structural Operational Semantics (SOS) is a widely used formalism for specifying the computational meaning of programs, and is commonly used in specifying the semantics of functional languages. Despite this widespread use there has been relatively little work on the imetatheoryj for such semantics. ..."
Abstract

Cited by 20 (1 self)
 Add to MetaCart
Structural Operational Semantics (SOS) is a widely used formalism for specifying the computational meaning of programs, and is commonly used in specifying the semantics of functional languages. Despite this widespread use there has been relatively little work on the imetatheoryj for such semantics. As a consequence the operational approach to reasoning is considered ad hoc since the same basic proof techniques and reasoning tools are reestablished over and over, once for each operational semantics speciøcation. This paper develops some metatheory for a certain class of SOS language speciøcations for functional languages. We deøne a rule format, Globally Deterministic SOS (gdsos), and establish some proof principles for reasoning about equivalence which are sound for all languages which can be expressed in this format. More speciøcally, if the SOS rules for the operators of a language conform to the syntax of the gdsos format, then ffl a syntactic analogy of continuity holds, which rel...
A Modal Lambda Calculus with Iteration and Case Constructs
 TYPES FOR PROOFS AND PROGRAMS: INTERNATIONAL WORKSHOP, TYPES ’98, KLOSTER IRSEE
, 1997
"... An extension of the simplytyped lambdacalculus allowing iteration and case reasoning over terms defined by means of higher order abstract syntax has recently been introduced by Joëlle Despeyroux, Frank Pfenning and Carsten Schürmann. This thorny mixing is achieved thanks to the help of the operato ..."
Abstract

Cited by 8 (1 self)
 Add to MetaCart
(Show Context)
An extension of the simplytyped lambdacalculus allowing iteration and case reasoning over terms defined by means of higher order abstract syntax has recently been introduced by Joëlle Despeyroux, Frank Pfenning and Carsten Schürmann. This thorny mixing is achieved thanks to the help of the operator ` ' of modal logic IS4. Here we give a new presentation of their system, with reduction rules, instead of evaluation judgments, that compute the canonical forms of terms. Our presentation is based on a modal lambdacalculus that is better from the user's point of view, is more concise and we do not impose a particular strategy of reduction during the computation. Our system enjoys the decidability of typability, soundness of typed reduction with respect to typing rules, the ChurchRosser and strong normalization properties. Finally it is a conservative extension of the simplytyped lambdacalculus.
A Machine Assisted Formalization of Pointfree Topology in Type Theory
, 1994
"... We will present a formalization of pointfree topology in MartinLöf's type theory. A notion of point will be introduced and we will show that the points of a Scott topology form a Scott domain. This work follows closely the intuitionistic approach to pointfree topology and domain theory, develo ..."
Abstract

Cited by 7 (2 self)
 Add to MetaCart
We will present a formalization of pointfree topology in MartinLöf's type theory. A notion of point will be introduced and we will show that the points of a Scott topology form a Scott domain. This work follows closely the intuitionistic approach to pointfree topology and domain theory, developed mainly by MartinLöf and Sambin. The important difference is that the definitions and proofs are machine checked by the proof assistant ALF.
Weak Transitivity in Coercive Subtyping
 TYPES FOR PROOFS AND PROGRAMS, VOLUME 2646 OF LNCS
, 2001
"... Coercive subtyping is a general approach to subtyping, inheritance and abbreviation in dependent type theories. A vital requirement for coercive subtyping is that of coherence which essentially says that coercions between any two types must be unique. Another important task for coercive subtyping is ..."
Abstract

Cited by 4 (4 self)
 Add to MetaCart
Coercive subtyping is a general approach to subtyping, inheritance and abbreviation in dependent type theories. A vital requirement for coercive subtyping is that of coherence which essentially says that coercions between any two types must be unique. Another important task for coercive subtyping is to prove the admissibility or elimination of transitivity and substitution. In this paper, we propose and study the notion of Weak Transitivity, consider suitable subtyping rules for certain parameterised inductive types and prove its coherence and the admissibility of substitution and weak transitivity in the coercive subtyping framework.
A Machineassisted Proof that Well Typed Expressions Cannot Go Wrong
, 1998
"... This paper deals with the application of constructive type theory to the theory of programming languages. The main aim of this work is to investigate constructive formalisations of the mathematics of programs. Here, we consider a small typed functional language and prove some properties about it, ar ..."
Abstract

Cited by 3 (0 self)
 Add to MetaCart
(Show Context)
This paper deals with the application of constructive type theory to the theory of programming languages. The main aim of this work is to investigate constructive formalisations of the mathematics of programs. Here, we consider a small typed functional language and prove some properties about it, arriving at the property that establishes that well typed expressions cannot go wrong. First, we give the definitions and proofs in an informal style, and then we present and explain the formalisation of these definitions and proofs. For the formalisation, we use the proof editor ALF and its pattern matching facility.
A Modal Lambda Calculus with Iteration and Case Constructs
, 1998
"... An extension of the simplytyped calculus, allowing iteration and case reasoning over terms of functional types that arise when using higher order abstract syntax, has recently been introduced by Joëlle Despeyroux, Frank Pfenning and Carsten Schürmann. This thorny mixing is achieved thanks to the h ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
An extension of the simplytyped calculus, allowing iteration and case reasoning over terms of functional types that arise when using higher order abstract syntax, has recently been introduced by Joëlle Despeyroux, Frank Pfenning and Carsten Schürmann. This thorny mixing is achieved thanks to the help of the operator ` ' of modal logic S4. Here we give a new presentation of their system, with reduction rules, instead of evaluation judgments, that compute the canonical forms of terms. Our presentation is based on a modal calculus that is better from the user's point of view because it requires fewer annotations in terms. Moreover we do not impose a particular strategy of reduction during the computation. Our system enjoys the decidability of typability, soundness of typed reduction with respect to typing rules, the ChurchRosser and strong normalization properties and it is a conservative extension of the simplytyped calculus.