Results 1  10
of
10
From coinductive proofs to exact real arithmetic
"... Abstract. We give a coinductive characterisation of the set of continuous functions defined on a compact real interval, and extract certified programs that construct and combine exact real number algorithms with respect to the binary signed digit representation of real numbers. The data type corresp ..."
Abstract

Cited by 8 (6 self)
 Add to MetaCart
Abstract. We give a coinductive characterisation of the set of continuous functions defined on a compact real interval, and extract certified programs that construct and combine exact real number algorithms with respect to the binary signed digit representation of real numbers. The data type corresponding to the coinductive definition of continuous functions consists of finitely branching nonwellfounded trees describing when the algorithm writes and reads digits. This is a pilot study in using prooftheoretic methods for obtaining certified algorithms in exact real arithmetic. 1
Fixed points of type constructors and primitive recursion
 Computer Science Logic, 18th International Workshop, CSL 2004, 13th Annual Conference of the EACSL, Karpacz, Poland, September 2024, 2004, Proceedings, volume 3210 of Lecture Notes in Computer Science
, 2004
"... Our contribution to CSL 04 [AM04] contains a little error, which is easily corrected by 2 elementary editing steps (replacing one character and deleting another). Definition of wellformed contexts (fifth page). Typing contexts should, in contrast to kinding contexts, only contain type variable decla ..."
Abstract

Cited by 7 (3 self)
 Add to MetaCart
Our contribution to CSL 04 [AM04] contains a little error, which is easily corrected by 2 elementary editing steps (replacing one character and deleting another). Definition of wellformed contexts (fifth page). Typing contexts should, in contrast to kinding contexts, only contain type variable declarations without variance information. Hence, the second rule is too liberal; we must insist on p = ◦. The corrected set of rules is then: ⋄ cxt ∆ cxt ∆, X ◦κ cxt ∆ cxt ∆ ⊢ A: ∗ ∆, x:A cxt Definition of welltyped terms (immediately following). Since wellformed typing contexts ∆ contain no variance information, hence ◦ ∆ = ∆, we might drop the “◦ ” in the instantiation rule (fifth rule). The new set of rules is consequently, (x:A) ∈ ∆ ∆ cxt ∆ ⊢ x: A ∆, X ◦κ ⊢ t: A ∆ ⊢ t: ∀X κ. A ∆, x:A ⊢ t: B ∆ ⊢ λx.t: A → B ∆ ⊢ t: ∀X κ. A ∆ ⊢ F: κ
Representing Cyclic Structures as Nested Datatypes
"... We show that cyclic structures, i.e., finite or possibly infinite structures with backpointers, unwindable into possibly infinite structures, can be elegantly represented as nested datatypes. This representation is free of the various deficiencies characterizing the more naive representation as mixe ..."
Abstract

Cited by 5 (0 self)
 Add to MetaCart
We show that cyclic structures, i.e., finite or possibly infinite structures with backpointers, unwindable into possibly infinite structures, can be elegantly represented as nested datatypes. This representation is free of the various deficiencies characterizing the more naive representation as mixedvariant datatypes. It is inspired by the representation of lambdaterms as a nested datatype via the de Bruijn notation. 1
Verification of the Redecoration Algorithm for Triangular Matrices
, 2007
"... Abstract. Triangular matrices with a dedicated type for the diagonal elements can be profitably represented by a nested datatype, i. e., a heterogeneous family of inductive datatypes. These families are fully supported since the version 8.1 of the Coq theorem proving environment, released in 2007. R ..."
Abstract

Cited by 2 (1 self)
 Add to MetaCart
Abstract. Triangular matrices with a dedicated type for the diagonal elements can be profitably represented by a nested datatype, i. e., a heterogeneous family of inductive datatypes. These families are fully supported since the version 8.1 of the Coq theorem proving environment, released in 2007. Redecoration of triangular matrices has a succinct implementation in this representation, thus giving the challenge of proving it correct. This has been achieved within Coq, using also induction with measures. An axiomatic approach allowed a verification in the Isabelle theorem prover, giving insights about the differences of both systems. 1
Realisability and adequacy for (co)induction
"... Abstract. We prove the correctness of a formalised realisability interpretation of extensions of firstorder theories by inductive and coinductive definitions in an untyped λcalculus with fixedpoints. We illustrate the use of this interpretation for program extraction by some simple examples in th ..."
Abstract

Cited by 1 (1 self)
 Add to MetaCart
Abstract. We prove the correctness of a formalised realisability interpretation of extensions of firstorder theories by inductive and coinductive definitions in an untyped λcalculus with fixedpoints. We illustrate the use of this interpretation for program extraction by some simple examples in the area of exact real number computation, and hint at further nontrivial applications in computable analysis. 1
Adjoint Folds and Unfolds Or: Scything Through the Thicket of Morphisms
"... Abstract. Folds and unfolds are at the heart of the algebra of programming. They allow the cognoscenti to derive and manipulate programs rigorously and effectively. Fundamental laws such as fusion codify basic optimisation principles. However, most, if not all, programs require some tweaking to be g ..."
Abstract
 Add to MetaCart
Abstract. Folds and unfolds are at the heart of the algebra of programming. They allow the cognoscenti to derive and manipulate programs rigorously and effectively. Fundamental laws such as fusion codify basic optimisation principles. However, most, if not all, programs require some tweaking to be given the form of an (un) fold, and thus make them amenable to formal manipulation. In this paper, we remedy the situation by introducing adjoint folds and unfolds. We demonstrate that most programs are already of the required form and thus are directly amenable to manipulation. Central to the development is the categorical notion of an adjunction, which links adjoint (un) folds to standard (un) folds. We discuss a number of adjunctions and show that they are directly relevant to programming.
System Fi A HigherOrder Polymorphic λCalculus with Erasable TermIndices
"... Abstract. We introduce a foundational lambda calculus, System Fi, for studying programming languages with termindexed datatypes – higherkinded datatypes whose indices range over data such as natural numbers or lists. System Fi is an extension of System Fω that introduces the minimal features needed ..."
Abstract
 Add to MetaCart
Abstract. We introduce a foundational lambda calculus, System Fi, for studying programming languages with termindexed datatypes – higherkinded datatypes whose indices range over data such as natural numbers or lists. System Fi is an extension of System Fω that introduces the minimal features needed to support termindexing. We show that System Fi provides a theory for analysing programs with termindexed types and also argue that it constitutes a basis for the design of logicallysound lightweight dependent programming languages. We establish erasure properties of Fitypes that capture the idea that termindices are discardable in that they are irrelevant for computation. Index erasure projects typing in System Fi to typing in System Fω. So,SystemFi inherits strong normalization and logical consistency from System Fω.
Haskell Programming with Nested Types: A Principled Approach †
"... Abstract. Initial algebra semantics is one of the cornerstones of the theory of modern functional programming languages. For each inductive data type, it provides a Church encoding for that type, a build combinator which constructs data of that type, a fold combinator which encapsulates structured r ..."
Abstract
 Add to MetaCart
Abstract. Initial algebra semantics is one of the cornerstones of the theory of modern functional programming languages. For each inductive data type, it provides a Church encoding for that type, a build combinator which constructs data of that type, a fold combinator which encapsulates structured recursion over data of that type, and a fold/build rule which optimises modular programs by eliminating from them data constructed using the build combinator, and immediately consumed using the fold combinator, for that type. It has long been thought that initial algebra semantics is not expressive enough to provide a similar foundation for programming with nested types in Haskell. Specifically, the standard folds derived from initial algebra semantics have been considered too weak to capture commonly occurring patterns of recursion over data of nested types in Haskell, and no build combinators or fold/build rules have until now been defined for nested types. This paper shows that standard folds are, in fact, sufficiently expressive for programming with nested types in Haskell. It also defines build combinators and fold/build fusion rules for nested types. It thus shows how initial algebra semantics provides a principled, expressive, and elegant foundation for programming with nested types in Haskell. 1.
Research Summary
, 2005
"... Research areas My main research areas are Domain Theory, Proof Theory and Lambda Calculi with Types. Below, I briefly describe my work in these areas that will be of particular importance to the proposed project. Domain Theory has been introduced by D. Scott and Y. Ershov as a foundation for the den ..."
Abstract
 Add to MetaCart
Research areas My main research areas are Domain Theory, Proof Theory and Lambda Calculi with Types. Below, I briefly describe my work in these areas that will be of particular importance to the proposed project. Domain Theory has been introduced by D. Scott and Y. Ershov as a foundation for the denotational semantics of functional programming languages and as a model for continuous and computable higher type functionals. I gave an abstract topological analysis of the notion of totality in domains and proved generalizations of Kreisel’s Density Theorem [Ber93b, Ber99b]. Domains and totality will play an important role in the proposed project. Proof theory is concerned with the analysis of formal proofs. I am working on • the development of the proofsasprograms paradigm into a methodology for correct software development [BSS01] (see references at the end), [1,7] (see list below), • restricted proof systems for implicit characterizations of computational complexity classes [4], • interactive theorem proving (Minlog) with applications to program verification and synthesis [BBS + 98], • the analysis of the computational content of nonconstructive theories [3,5], • algorithmic interpretations of classical proofs as a learning process (recent work with S. Berardi, Turin). All of these topics, but in particular the first three, are project relevant.
Research Summary
"... Research areas My main research areas are Domain Theory, Proof Theory and Lambda Calculi with Types. Below, I briefly describe those parts of my work which are relevant for the proposed project. Domain Theory has been introduced by D. Scott and Y. Ershov as a foundation for the denotational semantic ..."
Abstract
 Add to MetaCart
Research areas My main research areas are Domain Theory, Proof Theory and Lambda Calculi with Types. Below, I briefly describe those parts of my work which are relevant for the proposed project. Domain Theory has been introduced by D. Scott and Y. Ershov as a foundation for the denotational semantics of functional programming languages and as a model for continuous and computable higher type functionals. My work in this area includes an abstract topological analysis of the notion of totality in domains and generalizations of Kreisel’s Density Theorem [Ber93b, Ber99b] (see references at the end of this document). Domains and totality will play an important role in the proposed project. Proof theory is concerned with the analysis of formal proofs. Project relevant topics I am working on are • the development of the proofsasprograms paradigm into a methodology for correct software development [BSS01], [1,2,6] (see list below), • restricted proof systems for implicit characterizations of computational complexity classes [4], • interactive theorem proving (Minlog) with applications to program verification and synthesis [BBS + 98], • the analysis of the computational content of nonconstructive theories [3,5], • algorithmic interpretations of classical proofs as a learning process (recent work with S. Berardi, Turin).