Chlipala, A. “An Introduction to Programming and Proving With Dependent Types in Coq”. Journal of Formalized Reasoning, vol. 3, no. 2, Jan. 2010, pp. 1-93, doi:10.6092/issn.1972-5787/1978.