Results 1  10
of
10
Infinite Objects in Type Theory
"... . We show that infinite objects can be constructively understood without the consideration of partial elements, or greatest fixedpoints, through the explicit consideration of proof objects. We present then a proof system based on these explanations. According to this analysis, the proof expressions ..."
Abstract

Cited by 84 (2 self)
 Add to MetaCart
. We show that infinite objects can be constructively understood without the consideration of partial elements, or greatest fixedpoints, through the explicit consideration of proof objects. We present then a proof system based on these explanations. According to this analysis, the proof expressions should have the same structure as the program expressions of a pure functional lazy language: variable, constructor, application, abstraction, case expressions, and local let expressions. 1 Introduction The usual explanation of infinite objects relies on the use of greatest fixedpoints of monotone operators, whose existence is justified by the impredicative proof of Tarski's fixed point theorem. The proof theory of such infinite objects, based on the so called coinduction principle, originally due to David Park [21] and explained with this name for instance in the paper [18], reflects this explanation. Constructively, to rely on such impredicative methods is somewhat unsatisfactory (see fo...
General recursion via coinductive types
 Logical Methods in Computer Science
"... Vol. 1 (2:1) 2005, pp. 1–28 ..."
Ensuring Streams Flow
 Proc. 6 th AMAST
, 1997
"... . It is our aim to develop an elementary strong functional programming (ESFP) system. To be useful, ESFP should include structures such as streams which can be computationally unwound infinitely often. We describe a syntactic analysis to ensure that infinitely proceeding structures, which we shall t ..."
Abstract

Cited by 15 (1 self)
 Add to MetaCart
. It is our aim to develop an elementary strong functional programming (ESFP) system. To be useful, ESFP should include structures such as streams which can be computationally unwound infinitely often. We describe a syntactic analysis to ensure that infinitely proceeding structures, which we shall term codata, are productive. This analysis is an extension of the check for guardedness that has been used with definitions over coinductive types in MartinLof's type theory and in the calculus of constructions. Our analysis is presented as a form of abstract interpretation that allows a wider syntactic class of corecursive definitions to be recognised as productive than in previous work. Thus programmers will have fewer restrictions on their use of infinite streams within a strongly normalizing functional language. 1 Introduction We aim to develop an Elementary Strong Functional Programming (ESFP) system. That is, we wish to exhibit a language that has the strong normalization (every progr...
Partial computations in constructive type theory
 JOURNAL OF LOGIC AND COMPUTATION
, 1991
"... Constructive type theory as conceived by Per MartinLöf has a very rich type system, but partial functions cannot be typed. This also makes it impossible to directly write recursive programs. In this paper a constructive type theory Red is defined which includes a partial type constructor A; objects ..."
Abstract

Cited by 7 (5 self)
 Add to MetaCart
Constructive type theory as conceived by Per MartinLöf has a very rich type system, but partial functions cannot be typed. This also makes it impossible to directly write recursive programs. In this paper a constructive type theory Red is defined which includes a partial type constructor A; objects in the type A may diverge, but if they converge, they must be members of A. A fixed point typing principle is given to allow typing of recursive functions. The extraction paradigm of type theory, whereby programs are automatically extracted from constructive proofs, is extended to allow extraction of fixed points. There is a Scott fixed point induction principle for reasoning about these functions. Soundness of the theory is proven. Type theory becomes a more expressive programming logic as a result.
Themes in Final Semantics
 Dipartimento di Informatica, Università di
, 1998
"... C'era una volta un re seduto in canap`e, che disse alla regina raccontami una storia. La regina cominci`o: "C'era una volta un re seduto in canap`e ..."
Abstract

Cited by 5 (2 self)
 Add to MetaCart
C'era una volta un re seduto in canap`e, che disse alla regina raccontami una storia. La regina cominci`o: &quot;C'era una volta un re seduto in canap`e
Ensuring the Productivity of Infinite Structures
, 1998
"... It is our aim to develop an elementary strong functional programming (ESFP) system. To be useful, ESFP should include structures such as streams which can be computationally unwound infinitely often. We describe a syntactic analysis to ensure that infinitely proceeding structures, which we shall ter ..."
Abstract

Cited by 3 (0 self)
 Add to MetaCart
It is our aim to develop an elementary strong functional programming (ESFP) system. To be useful, ESFP should include structures such as streams which can be computationally unwound infinitely often. We describe a syntactic analysis to ensure that infinitely proceeding structures, which we shall term codata, are productive. This analysis is an extension of the check for guardedness that has been used with definitions over coinductive types in MartinLof's type theory and in the calculus of constructions. Our analysis is presented as a form of abstract interpretation that allows a wider syntactic class of corecursive definitions to be recognised as productive than in previous work. Thus programmers will have fewer restrictions on their use of infinite streams within a strongly normalizing functional language. Contents 1 Introduction 1 2 Infinite Objects 2 2.1 Functional Programming and Infinite Data . . . . . . . . . . . . 3 2.2 Guarded Infinite Objects . . . . . . . . . . . . . ....
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 2 (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.
Defining Concurrent Processes Constructively
, 1994
"... This paper proposes a constructive logic in which a concurrent system can be dened as a proof of a speci cation. The logic is dened by adding stream types and several rules for them to an ordinary constructive logic. The unique feature of the obtained system is in the (MPST ) rule which is a kind o ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
This paper proposes a constructive logic in which a concurrent system can be dened as a proof of a speci cation. The logic is dened by adding stream types and several rules for them to an ordinary constructive logic. The unique feature of the obtained system is in the (MPST ) rule which is a kind of structural induction on streams. The (MPST ) rule is based on the idea of largest xed point inductions, but the formulation of the rule is quite dierent and it allows to dene a concurrent process as a Burge's mapstream function with a good intuition on computation. This formulation is possible when streams are viewed as sequences not innite lists. Also, our logic has explicit nondeterminacy but we do not introduce any extralogical device. Our nondeterminacy rule, (NonDet), is actually a dened rule which uses inherent nondeterminacy in the traditional intuitionistic logic. Several techniques of dening stream based concurrent programs are also presented through various examples. 1 I...
www.lmcsonline.org GENERAL RECURSION VIA COINDUCTIVE TYPES
, 2004
"... Abstract. A fertile field of research in theoretical computer science investigates the representation of general recursive functions in intensional type theories. Among the most successful approaches are: the use of wellfounded relations, implementation of operational semantics, formalization of dom ..."
Abstract
 Add to MetaCart
Abstract. A fertile field of research in theoretical computer science investigates the representation of general recursive functions in intensional type theories. Among the most successful approaches are: the use of wellfounded relations, implementation of operational semantics, formalization of domain theory, and inductive definition of domain predicates. Here, a different solution is proposed: exploiting coinductive types to model infinite computations. To every type A we associate a type of partial elements A ν, coinductively generated by two constructors: the first, �a � just returns an element a: A; the second, ⊲ x, adds a computation step to a recursive element x: A ν. We show how this simple device is sufficient to formalize all recursive functions between two given types. It allows the definition of fixed points of finitary, that is, continuous, operators. We will compare this approach to different ones from the literature. Finally, we mention that the formalization, with appropriate structural maps, defines a strong monad. 1.