Types For Proofs And Programs by J. Filliatre