99,983 research outputs found
Inductive and Coinductive Components of Corecursive Functions in Coq
In Constructive Type Theory, recursive and corecursive definitions are
subject to syntactic restrictions which guarantee termination for recursive
functions and productivity for corecursive functions. However, many terminating
and productive functions do not pass the syntactic tests. Bove proposed in her
thesis an elegant reformulation of the method of accessibility predicates that
widens the range of terminative recursive functions formalisable in
Constructive Type Theory. In this paper, we pursue the same goal for productive
corecursive functions. Notably, our method of formalisation of coinductive
definitions of productive functions in Coq requires not only the use of ad-hoc
predicates, but also a systematic algorithm that separates the inductive and
coinductive parts of functions.Comment: Dans Coalgebraic Methods in Computer Science (2008
The extended predicative Mahlo universe in Martin-Lof type theory
This paper addresses the long-standing question of the predicativity of the Mahlo universe. A solution, called the extended predicative Mahlo universe, has been proposed by Kahle and Setzer in the context of explicit mathematics. It makes use of the collection of untyped terms (denoting partial functions) which are directly available in explicit mathematics but not in Martin-Lof type theory. In this paper, we overcome the obstacle of not having direct access to untyped terms in Martin-Lof type theory by formalizing explicit mathematics with an extended predicative Mahlo universe in Martin-Lof type theory with certain indexed inductive-recursive definitions. In this way, we can relate the predicativity question to the fundamental semantics of Martin-Lof type theory in terms of computation to canonical form. As a result, we get the first extended predicative definition of a Mahlo universe in Martin-Lof type theory. To this end, we first define an external variant of Kahle and Setzer\u27s internal extended predicative universe in explicit mathematics. This is then formalized in Martin-Lof type theory, where it becomes an internal extended predicative Mahlo universe. Although we make use of indexed inductive-recursive definitions that go beyond the type theory of indexed inductive-recursive definitions defined in previous work by the authors, we argue that they are constructive and predicative in Martin-Lof\u27s sense. The model construction has been type-checked in the proof assistant Agda
First steps in synthetic guarded domain theory: step-indexing in the topos of trees
We present the topos S of trees as a model of guarded recursion. We study the
internal dependently-typed higher-order logic of S and show that S models two
modal operators, on predicates and types, which serve as guards in recursive
definitions of terms, predicates, and types. In particular, we show how to
solve recursive type equations involving dependent types. We propose that the
internal logic of S provides the right setting for the synthetic construction
of abstract versions of step-indexed models of programming languages and
program logics. As an example, we show how to construct a model of a
programming language with higher-order store and recursive types entirely
inside the internal logic of S. Moreover, we give an axiomatic categorical
treatment of models of synthetic guarded domain theory and prove that, for any
complete Heyting algebra A with a well-founded basis, the topos of sheaves over
A forms a model of synthetic guarded domain theory, generalizing the results
for S
Guarded Dependent Type Theory with Coinductive Types
We present guarded dependent type theory, gDTT, an extensional dependent type
theory with a `later' modality and clock quantifiers for programming and
proving with guarded recursive and coinductive types. The later modality is
used to ensure the productivity of recursive definitions in a modular, type
based, way. Clock quantifiers are used for controlled elimination of the later
modality and for encoding coinductive types using guarded recursive types. Key
to the development of gDTT are novel type and term formers involving what we
call `delayed substitutions'. These generalise the applicative functor rules
for the later modality considered in earlier work, and are crucial for
programming and proving with dependent types. We show soundness of the type
theory with respect to a denotational model.Comment: This is the technical report version of a paper to appear in the
proceedings of FoSSaCS 201
Infinite Types, Infinite Data, Infinite Interaction
We describe a way to represent computable functions between coinductive types as particular transducers in type theory. This generalizes earlier work on functions between streams by P. Hancock to a much richer class of coinductive types. Those transducers can be defined in dependent type theory without any notion of equality but require inductive-recursive definitions. Most of the properties of these constructions only rely on a mild notion of equality (intensional equality) and can thus be formalized in the dependently typed language Agda
Reasoning about modular datatypes with Mendler induction
In functional programming, datatypes a la carte provide a convenient modular
representation of recursive datatypes, based on their initial algebra
semantics. Unfortunately it is highly challenging to implement this technique
in proof assistants that are based on type theory, like Coq. The reason is that
it involves type definitions, such as those of type-level fixpoint operators,
that are not strictly positive. The known work-around of impredicative
encodings is problematic, insofar as it impedes conventional inductive
reasoning. Weak induction principles can be used instead, but they considerably
complicate proofs.
This paper proposes a novel and simpler technique to reason inductively about
impredicative encodings, based on Mendler-style induction. This technique
involves dispensing with dependent induction, ensuring that datatypes can be
lifted to predicates and relying on relational formulations. A case study on
proving subject reduction for structural operational semantics illustrates that
the approach enables modular proofs, and that these proofs are essentially
similar to conventional ones.Comment: In Proceedings FICS 2015, arXiv:1509.0282
Denotational semantics in Synthetic Guarded Domain Theory
In functional programming, features such as recursion, recursive types and general references are central. To define semantics of this kind of languages one needs to come up with certain definitions which may be non-trivial to show well-defined. This is because they are circular. Domain theory has been used to solve this kind of problems for specific languages, unfortunately, this technique does not scale for more featureful languages, which prevented it from being widely used.
Step-indexing is a more general technique that has been used to break circularity of definitions. The idea is to tweak the definition by adding a well-founded structure that gives a handle for recursion. Guarded dependent Type Theory (gDTT) is a type theory which implements step-indexing via a unary modality used to guard recursive definitions. Every circular definition is well-defined as long as the recursive variable is guarded.
In this thesis we show that gDTT is a natural setting to give denotational semantics of typed functional programming languages with recursion and recursive types. We formulate operational semantics and denotational semantics and prove computational adequacy entirely inside the type theory. Furthermore, our interpretation is synthetic: types are interpreted as types in the type theory and programs as type-theoretical terms. Moreover, working directly in gDTT has advantages compared with existing set-theoretic models.
Finally, this work builds the foundations for doing denotational semantics of languages with much more challenging features, for example, of general references for which denotational techniques were previously beyond reach
Constructing Infinitary Quotient-Inductive Types
This paper introduces an expressive class of quotient-inductive types, called
QW-types. We show that in dependent type theory with uniqueness of identity
proofs, even the infinitary case of QW-types can be encoded using the
combination of inductive-inductive definitions involving strictly positive
occurrences of Hofmann-style quotient types, and Abel's size types. The latter,
which provide a convenient constructive abstraction of what classically would
be accomplished with transfinite ordinals, are used to prove termination of the
recursive definitions of the elimination and computation properties of our
encoding of QW-types. The development is formalized using the Agda theorem
prover
Bisimulation as path type for guarded recursive types
In type theory, coinductive types are used to represent processes, and are
thus crucial for the formal verification of non-terminating reactive programs
in proof assistants based on type theory, such as Coq and Agda. Currently,
programming and reasoning about coinductive types is difficult for two reasons:
The need for recursive definitions to be productive, and the lack of
coincidence of the built-in identity types and the important notion of
bisimilarity.
Guarded recursion in the sense of Nakano has recently been suggested as a
possible approach to dealing with the problem of productivity, allowing this to
be encoded in types. Indeed, coinductive types can be encoded using a
combination of guarded recursion and universal quantification over clocks. This
paper studies the notion of bisimilarity for guarded recursive types in Ticked
Cubical Type Theory, an extension of Cubical Type Theory with guarded
recursion. We prove that, for any functor, an abstract, category theoretic
notion of bisimilarity for the final guarded coalgebra is equivalent (in the
sense of homotopy type theory) to path equality (the primitive notion of
equality in cubical type theory). As a worked example we study a guarded notion
of labelled transition systems, and show that, as a special case of the general
theorem, path equality coincides with an adaptation of the usual notion of
bisimulation for processes. In particular, this implies that guarded recursion
can be used to give simple equational reasoning proofs of bisimilarity. This
work should be seen as a step towards obtaining bisimilarity as path equality
for coinductive types using the encodings mentioned above
Decidability of Conversion for Type Theory in Type Theory
Type theory should be able to handle its own meta-theory, both to justify its foundational claims and to obtain a verified implementation. At the core of a type checker for intensional type theory lies an algorithm to check equality of types, or in other words, to check whether two types are convertible. We have formalized in Agda a practical conversion checking algorithm for a dependent type theory with one universe \ue0 la Russell, natural numbers, and η-equality for Π types. We prove the algorithm correct via a Kripke logical relation parameterized by a suitable notion of equivalence of terms. We then instantiate the parameterized fundamental lemma twice: once to obtain canonicity and injectivity of type formers, and once again to prove the completeness of the algorithm. Our proof relies on inductive-recursive definitions, but not on the uniqueness of identity proofs. Thus, it is valid in variants of intensional Martin-L\uf6f Type Theory as long as they support induction-recursion, for instance, Extensional, Observational, or Homotopy Type Theory
- …