Results 11  20
of
37
Coq Modulo Theory
, 2010
"... Abstract. Coq Modulo Theory (CoqMT) is an extension of the Coq proof assistant incorporating, in its computational mechanism, validity entailment for userdefined firstorder equational theories. Such a mechanism strictly enriches the system (more terms are typable), eases the use of dependent types ..."
Abstract

Cited by 7 (1 self)
 Add to MetaCart
Abstract. Coq Modulo Theory (CoqMT) is an extension of the Coq proof assistant incorporating, in its computational mechanism, validity entailment for userdefined firstorder equational theories. Such a mechanism strictly enriches the system (more terms are typable), eases the use of dependent types and provides more automation during the development of proofs. CoqMT improves over the Calculus of Congruent Inductive Constructions by getting rid of various restrictions and simplifying the typechecking algorithm and the integration of firstorder decision procedures. We present here CoqMT, and outline its metatheoretical study. We also give a brief description of our CoqMT implementation. 1
Constructor subtyping
, 1999
"... Constructor subtyping is a form of subtyping in which an inductive type is viewed as a subtype of another inductive type Ï if Ï has more constructors than. As suggested in [5, 12], its (potential) uses include proof assistants and functional programming languages. In this paper, we introduce and ..."
Abstract

Cited by 7 (3 self)
 Add to MetaCart
Constructor subtyping is a form of subtyping in which an inductive type is viewed as a subtype of another inductive type Ï if Ï has more constructors than. As suggested in [5, 12], its (potential) uses include proof assistants and functional programming languages. In this paper, we introduce and study the properties of a simply typed Î»calculus with record types and datatypes, and which supports record subtyping and constructor subtyping. In the first part of the paper, we show that the calculus is confluent and strongly normalizing. In the second part of the paper, we show that the calculus admits a wellbehaved theory of canonical inhabitants, provided one adopts expansive extensionality rules, includingexpansion, surjective pairing, and a suitable expansion rule for datatypes. Finally, in the third part of the paper, we extend our calculus with unbounded recursion and show that confluence is preserved.
Tracebased coinductive operational semantics for While; Bigstep and smallstep, relational and functional styles
 In Theorem Proving in Higher Order Logics, 22nd International Conference, TPHOLs 2009, volume 5674 of LNCS
, 2009
"... Abstract. We present four coinductive operational semantics for the While language accounting for both terminating and nonterminating program runs: bigstep and smallstep relational semantics and bigstep and smallstep functional semantics. The semantics employ traces (possibly infinite sequences ..."
Abstract

Cited by 6 (1 self)
 Add to MetaCart
Abstract. We present four coinductive operational semantics for the While language accounting for both terminating and nonterminating program runs: bigstep and smallstep relational semantics and bigstep and smallstep functional semantics. The semantics employ traces (possibly infinite sequences of states) to record the states that program runs go through. The relational semantics relate statementstate pairs to traces, whereas the functional semantics return traces for statementstate pairs. All four semantics are equivalent. We formalize the semantics and their equivalence proofs in the constructive setting of Coq. 1
Typebased termination of generic programs
 Science of Computer Programming
, 2007
"... Instances of a polytypic or generic program for a concrete recursive type often exhibit a recursion scheme that is derived from the recursion scheme of the instantiation type. In practice, the programs obtained from a generic program are usually terminating, but the proof of termination cannot be ca ..."
Abstract

Cited by 5 (1 self)
 Add to MetaCart
Instances of a polytypic or generic program for a concrete recursive type often exhibit a recursion scheme that is derived from the recursion scheme of the instantiation type. In practice, the programs obtained from a generic program are usually terminating, but the proof of termination cannot be carried out with traditional methods as term orderings alone, since termination often crucially relies on the program type. In this article, it is demonstrated that typebased termination using sized types handles such programs very well. A framework for sized polytypic programming is developed which ensures (typebased) termination of all instances. 1
Ordinals and Interactive Programs
, 2000
"... The work reported in this thesis arises from the old idea, going back to the origins of constructive logic, that a proof is fundamentally a kind of program. If proofs can be ..."
Abstract

Cited by 5 (2 self)
 Add to MetaCart
The work reported in this thesis arises from the old idea, going back to the origins of constructive logic, that a proof is fundamentally a kind of program. If proofs can be
iRho: an imperative rewriting calculus
, 2008
"... We propose an imperative version of the Rewriting Calculus, a calculus based on pattern matching, pattern abstraction and side effects, which we call iRho. We formulate both a static and bigstep callbyvalue operational semantics of iRho. The operational semantics is deterministic, and immediately ..."
Abstract

Cited by 4 (1 self)
 Add to MetaCart
We propose an imperative version of the Rewriting Calculus, a calculus based on pattern matching, pattern abstraction and side effects, which we call iRho. We formulate both a static and bigstep callbyvalue operational semantics of iRho. The operational semantics is deterministic, and immediately suggests how an interpreter for the calculus may be built. The static semantics is given using a firstorder type system based on a form of product types, which can be assigned to termlike structures (that is, records). The calculus is à la Church, that is, pattern abstractions are decorated with the types of the free variables of the pattern. iRho is a good candidate for the core of a patternmatching imperative language, where a (monomorphic) typed store can be safely manipulated and where fixed points are built into the language itself. Properties such as determinism of the interpreter and subjectreduction have been completely checked using a machineassisted approach with the Coq proof assistant. Progress and decidability of type checking are proved using pen and paper.
Implementation Techniques for Inductive Types in Plastic
 Types for Proofs and Programs, volume 1956 of LNCS
, 2000
"... . In the context of Plastic, a proof assistant for a variant of MartinLof's Logical Framework LF with explicitly typed abstractions, we outline the technique used for implementing inductive types from their declarations. This form of inductive types gives rise to a problem of nonlinear p ..."
Abstract

Cited by 4 (2 self)
 Add to MetaCart
. In the context of Plastic, a proof assistant for a variant of MartinLof's Logical Framework LF with explicitly typed abstractions, we outline the technique used for implementing inductive types from their declarations. This form of inductive types gives rise to a problem of nonlinear pattern matching; we propose this match can be ignored in welltyped terms, and outline a proof of this. The paper then explains how the inductive types are realised inside the reduction mechanisms of Plastic, and briefly considers optimisations for inductive types. Key words: type theory, inductive types, LF, implementation. 1 Introduction This paper considers implementation techniques for a particular approach to inductive types in constructive type theory. The inductive types considered are those given in Chapter 9 of [15], in which Luo presents a variant of MartinLof's Logical Framework LF which has explicitly typed abstractions, and a schema for inductive types within this LF which is...
Pure type systems with corecursion on streams From finite to infinitary normalisation
 IN ICFP
, 2012
"... In this paper, we use types for ensuring that programs involving streams are wellbehaved. We extend pure type systems with a type constructor for streams, a modal operator next and a fixed point operator for expressing corecursion. This extension is called Pure Type Systems with Corecursion (CoPTS) ..."
Abstract

Cited by 3 (2 self)
 Add to MetaCart
In this paper, we use types for ensuring that programs involving streams are wellbehaved. We extend pure type systems with a type constructor for streams, a modal operator next and a fixed point operator for expressing corecursion. This extension is called Pure Type Systems with Corecursion (CoPTS). The typed lambda calculus for reactive programs defined by Krishnaswami and Benton can be obtained as a CoPTS. CoPTS’s allow us to study a wide range of typed lambda calculi extended with corecursion using only one framework. In particular, we study this extension for the calculus of constructions which is the underlying formal language of Coq. We use the machinery of infinitary rewriting and formalize the idea of wellbehaved programs using the concept of infinitary normalization. We study the properties of infinitary weak and strong normalization for CoPTS’s. The set of finite and infinite terms is defined as a metric completion. We shed new light on the meaning of the modal operator by connecting the modality with the depth used to define the metric. This connection is the key to the proofs of infinitary weak and strong normalization.
Supercompilation and Normalisation by Evaluation
 SECOND INTERNATIONAL WORKSHOP ON METACOMPUTATION IN RUSSIA (META 2010)
, 2010
"... It has been long recognised that partial evaluation is related to proof normalisation. Normalisation by evaluation, which has been presented for theories with simple types, has made this correspondence formal. Recently Andreas Abel formalised an algorithm for normalisation by evaluation for System F ..."
Abstract

Cited by 3 (0 self)
 Add to MetaCart
It has been long recognised that partial evaluation is related to proof normalisation. Normalisation by evaluation, which has been presented for theories with simple types, has made this correspondence formal. Recently Andreas Abel formalised an algorithm for normalisation by evaluation for System F. This is an important step towards the use of such techniques on practical functional programming languages such as Haskell which can reasonably be embedded in relatives of System Fω. Supercompilation is a program transformation technique which performs a superset of the simplifications performed by partial evaluation. The focus of this paper is to formalise the relationship between supercompilation and normalisation by evaluation for System F with recursive types and terms.
Practical Inference for TypedBased Termination in a Polymorphic Setting
"... We introduce a polymorphic #calculus that features inductive types and that enforces termination of recursive definitions through typing. Then, we define a sound and complete type inference algorithm that computes a set of constraints to be satisfied for terms to be typable. ..."
Abstract

Cited by 3 (0 self)
 Add to MetaCart
We introduce a polymorphic #calculus that features inductive types and that enforces termination of recursive definitions through typing. Then, we define a sound and complete type inference algorithm that computes a set of constraints to be satisfied for terms to be typable.