541 research outputs found
Guarded Cubical Type Theory: Path Equality for Guarded Recursion
This paper improves the treatment of equality in guarded dependent type
theory (GDTT), by combining it with cubical type theory (CTT). GDTT is an
extensional type theory with guarded recursive types, which are useful for
building models of program logics, and for programming and reasoning with
coinductive types. We wish to implement GDTT with decidable type-checking,
while still supporting non-trivial equality proofs that reason about the
extensions of guarded recursive constructions. CTT is a variation of
Martin-L\"of type theory in which the identity type is replaced by abstract
paths between terms. CTT provides a computational interpretation of functional
extensionality, is conjectured to have decidable type checking, and has an
implemented type-checker. Our new type theory, called guarded cubical type
theory, provides a computational interpretation of extensionality for guarded
recursive types. This further expands the foundations of CTT as a basis for
formalisation in mathematics and computer science. We present examples to
demonstrate the expressivity of our type theory, all of which have been checked
using a prototype type-checker implementation, and present semantics in a
presheaf category.Comment: 17 pages, to be published in proceedings of CSL 201
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
Greatest HITs: Higher Inductive Types in Coinductive Definitions via Induction under Clocks
Guarded recursion is a powerful modal approach to recursion that can be seen
as an abstract form of step-indexing. It is currently used extensively in
separation logic to model programming languages with advanced features by
solving domain equations also with negative occurrences. In its multi-clocked
version, guarded recursion can also be used to program with and reason about
coinductive types, encoding the productivity condition required for recursive
definitions in types. This paper presents the first type theory combining
multi-clocked guarded recursion with the features of Cubical Type Theory, as
well as a denotational semantics. Using the combination of Higher Inductive
Types (HITs) and guarded recursion allows for simple programming and reasoning
about coinductive types that are traditionally hard to represent in type
theory, such as the type of finitely branching labelled transition systems. For
example, our results imply that bisimilarity for these imply path equality, and
so proofs can be transported along bisimilarity proofs. Among our technical
contributions is a new principle of induction under clocks. This allows
universal quantification over clocks to commute with HITs up to equivalence of
types, and is crucial for the encoding of coinductive types. Such commutativity
requirements have been formulated for inductive types as axioms in previous
type theories with multi-clocked guarded recursion, but our present formulation
as an induction principle allows for the formulation of general computation
rules.Comment: 29 page
The Clocks They Are Adjunctions: Denotational Semantics for Clocked Type Theory
Clocked Type Theory (CloTT) is a type theory for guarded recursion useful for
programming with coinductive types, allowing productivity to be encoded in
types, and for reasoning about advanced programming language features using an
abstract form of step-indexing. CloTT has previously been shown to enjoy a
number of syntactic properties including strong normalisation, canonicity and
decidability of type checking. In this paper we present a denotational
semantics for CloTT useful, e.g., for studying future extensions of CloTT with
constructions such as path types.
The main challenge for constructing this model is to model the notion of
ticks used in CloTT for coinductive reasoning about coinductive types. We build
on a category previously used to model guarded recursion, but in this category
there is no object of ticks, so tick-assumptions in a context can not be
modelled using standard tools. Instead we show how ticks can be modelled using
adjoint functors, and how to model the tick constant using a semantic
substitution
- …