 
Summary: Subtyping, Declaratively
An Exercise in Mixed Induction and Coinduction
Nils Anders Danielsson and Thorsten Altenkirch
University of Nottingham
Abstract. It is natural to present subtyping for recursive types coin
ductively. However, Gapeyev, Levin and Pierce have noted that there is
a problem with coinductive definitions of nontrivial transitive inference
systems: they cannot be "declarative"as opposed to "algorithmic" or
syntaxdirectedbecause coinductive inference systems with an explicit
rule of transitivity are trivial.
We propose a solution to this problem. By using mixed induction and
coinduction we define an inference system for subtyping which combines
the advantages of coinduction with the convenience of an explicit rule of
transitivity. The definition uses coinduction for the structural rules, and
induction for the rule of transitivity. We also discuss under what condi
tions this technique can be used when defining other inference systems.
The developments presented in the paper have been mechanised using
Agda, a dependently typed programming language and proof assistant.
1 Introduction
Coinduction and corecursion are useful techniques for defining and reasoning
