Coq incluye expresiones let en su lenguaje principal. Podemos traducir expresiones let a aplicaciones como esta:
let x : t = v in b ~> (\(x:t). b) v
entiendo que esto no siempre funciona porque el valor vno estaría disponible cuando se verifica la escritura b. Sin embargo, esto se puede solucionar fácilmente mediante una carcasa especial para la verificación de tipos de aplicaciones del formulario (\(x:t). b) v. Esto nos permite eliminar expresiones let a costa de un caso especial mientras se realiza la verificación de tipos. ¿Por qué Coq include todavía incluye expresiones let? ¿Tienen otras ventajas (además de no necesitar el caso especial)?
letexpresiones, pero a) no hay razón para evitarletexpresiones y también son convenientes, yb) agregar trucos a su lenguaje principal no es una gran idea.