Types for Proofs and Programs by Eduardo Gimenez & Christine Paulin-Mohring