Results 1 
8 of
8
Resumptions, Weak Bisimilarity and BigStep Semantics for While with Interactive I/O: An Exercise in Mixed InductionCoinduction
"... We look at the operational semantics of languages with interactive I/O through the glasses of constructive type theory. Following on from our earlier work on coinductive tracebased semantics for While [17], we define several bigstep semantics for While with interactive I/O, based on resumptions an ..."
Abstract

Cited by 4 (3 self)
 Add to MetaCart
We look at the operational semantics of languages with interactive I/O through the glasses of constructive type theory. Following on from our earlier work on coinductive tracebased semantics for While [17], we define several bigstep semantics for While with interactive I/O, based on resumptions and terminationsensitive weak bisimilarity. These require nesting inductive definitions in coinductive definitions, which is interesting both mathematically and from the pointofview of implementation in a proof assistant. After first defining a basic semantics of statements in terms of resumptions with explicit internal actions (delays), we introduce a semantics in terms of delayfree resumptions that essentially removes finite sequences of delays on the fly from those resumptions that are responsive. Finally, we also look at a semantics in terms of delayfree resumptions supplemented with a silent divergence option. This semantics hinges on decisions between convergence and divergence and is only equivalent to the basic one classically. We have fully formalized our development in Coq. 1
Proofs, programs, processes
"... Abstract. We study a realisability interpretation for inductive and coinductive definitions and discuss its application to program extraction from proofs. A speciality of this interpretation is that realisers are given by terms that correspond directly to programs in a lazy functional programming la ..."
Abstract

Cited by 2 (1 self)
 Add to MetaCart
Abstract. We study a realisability interpretation for inductive and coinductive definitions and discuss its application to program extraction from proofs. A speciality of this interpretation is that realisers are given by terms that correspond directly to programs in a lazy functional programming language such as Haskell. Programs extracted from proofs using coinduction can be understood as perpetual processes producing infinite streams of data. Typical applications of such processes are computations in exact real arithmetic. As an example we show how to extract a program computing the average of two real numbers w.r.t. to the binary signed digit representation. 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
Realisability for induction and coinduction with applications to constructive analysis
 J. Univers. Comput. Sci
, 2010
"... 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.
Wander Types A Formalization of CoinductionRecursion ∗
"... Wander types are a coinductive version of inductiverecursive definitions. They are defined by simultaneously specifying the constructors of the type and a function on the type itself. The types of the constructors can refer to the function component and the function itself is given by pattern match ..."
Abstract
 Add to MetaCart
Wander types are a coinductive version of inductiverecursive definitions. They are defined by simultaneously specifying the constructors of the type and a function on the type itself. The types of the constructors can refer to the function component and the function itself is given by pattern matching on the constructors. Wander types are different from inductiverecursive types in two ways: the structure of the elements is not required to be wellfounded, so infinite applications of the constructors are allowed; and the recursive calls in the definition of the function are not required to be on structurally smaller arguments. Wander types generalize several known type formers. We can use the functional component to control the way the data branch. This allows not only the implementation of coinduction, but also of induction, by imposing wellfoundedness through an appropriate function definition. Special instances of wander types are: plain inductive and coinductive types, inductiverecursive types, mixed inductivecoinductive types, continuous stream processors. 1
Program Extraction from Nested Definitions
"... Abstract. Minlog is a proof assistant which automatically extracts computational content in an extension of Gödel’s T from formalized proofs. We report on extending Minlog to deal with predicates defined using a particular combination of induction and coinduction, via socalled nested definitions. I ..."
Abstract
 Add to MetaCart
Abstract. Minlog is a proof assistant which automatically extracts computational content in an extension of Gödel’s T from formalized proofs. We report on extending Minlog to deal with predicates defined using a particular combination of induction and coinduction, via socalled nested definitions. In order to increase the efficiency of the extracted programs, we have also implemented a feature to translate terms into Haskell programs. To illustrate our theory and implementation, a formalisation of a theory of uniformly continuous functions due to Berger is presented. 1
Streams from a typetheoretic perspective
, 2010
"... A stream is a paradigm for an ‘infinite object ’ in a certain sense. There are two ‘poles ’ in the notion of infinity: µ transfinite entities, having a wellfounded structure, typified by the ordinal ω. We define functions on such: folds, primitive recursion,.... ν coinductive entities, explorable ‘i ..."
Abstract
 Add to MetaCart
A stream is a paradigm for an ‘infinite object ’ in a certain sense. There are two ‘poles ’ in the notion of infinity: µ transfinite entities, having a wellfounded structure, typified by the ordinal ω. We define functions on such: folds, primitive recursion,.... ν coinductive entities, explorable ‘in perpetuity’, typified by streams B ω. We define functions to such: unfolds,....Infinite objects A stream is a paradigm for an ‘infinite object ’ in a certain sense. There are two ‘poles ’ in the notion of infinity: µ transfinite entities, having a wellfounded structure, typified by the ordinal ω. We define functions on such: folds, primitive recursion,.... ν coinductive entities, explorable ‘in perpetuity’, typified by streams B ω. We define functions to such: unfolds,.... The work presented here (joint with Ghani and Pattinson) concerns an interplay between initiality µ and finality ν.Infinite objects A stream is a paradigm for an ‘infinite object ’ in a certain sense. There are two ‘poles ’ in the notion of infinity: µ transfinite entities, having a wellfounded structure, typified by the ordinal ω. We define functions on such: folds, primitive recursion,.... ν coinductive entities, explorable ‘in perpetuity’, typified by streams B ω. We define functions to such: unfolds,.... The work presented here (joint with Ghani and Pattinson) concerns an interplay between initiality µ and finality ν. How to handle coinduction in dependent type theory (and tools based on it) is not a settled matter. I’m not sure there’s much consensus. What I use