  Initial Semantics aims at characterizing the syntax associated to a signature
as the initial object of some category. We present an initial semantics result
for typed higher-order syntax together with its formalization in the Coq proof
assistant. The main theorem was first proved on paper in the second author's
PhD thesis in 2010, and verified formally shortly afterwards. To a simply-typed
binding signature S over a fixed set T of object types we associate a category
called the category of representations of S. We show that this category has an
initial object Sigma(S). From its construction it will be clear that the object
Sigma(S) merits the name abstract syntax associated to S. Our theorem is
implemented and proved correct in the proof assistant Coq through heavy use of
dependent types. The approach through monads gives rise to an implementation of
syntax where both terms and variables are intrinsically typed, i.e. where the
object types are reflected in the meta-level types. This article is to be seen
as a research article rather than about the formalization of a classical
mathematical result. The nature of our theorem - involving lengthy, technical
proofs and complicated algebraic structures - makes it particularly interesting
for formal verification. Our goal is to promote the use of computer theorem
provers as research tools, and, accordingly, a new way of publishing
mathematical results: a parallel description of a theorem and its formalization
should allow the verification of correct transcription of definitions and
statements into the proof assistant, and straightforward but technical proofs
should be well-hidden in a digital library. We argue that Coq's rich type
theory, combined with its various features such as implicit arguments, allows a
particularly readable formalization and is hence well-suited for communicating
mathematics.
