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 the equational theory. 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 on a clock used in CloTT for coinductive reasoning about coinductive
types. We build on a category previously used to model guarded recursion with
multiple clocks. In this category there is an object of clocks but no object of
ticks, and so tick-assumptions in a context can not be modelled using standard
tools. Instead we model ticks using dependent right adjoint functors, a
generalisation of the category theoretic notion of adjunction to the setting of
categories with families. Dependent right adjoints are known to model
Fitch-style modal types, but in the case of CloTT, the modal operators
constitute a family indexed internally in the type theory by clocks. We model
this family using a dependent right adjoint on the slice category over the
object of clocks. Finally we show how to model the tick constant of CloTT using
a semantic substitution.
This work improves on a previous model by the first two named authors which
not only had a flaw but was also considerably more complicated.Comment: 31 pages. Second version is a minor revision. arXiv admin note: text
overlap with arXiv:1804.0668