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. 
Ale\v{s} Bizjak, Hans Bugge Grathwohl, Ranald Clouston, Rasmus E.   M{\o}gelberg, Lars Birkedal
cs.LO cs.PL