Universidad EAFIT. Escuela de Ciencias y Humanidades. Grupo de Investigación Lógica y Computación
Abstract
Una de las grandes ventajas de los lenguajes funcionales puros es que permiten ser razonados ecuacionalmente, de esta forma, se facilita la verificación de su corrección. Pero esta pureza impide los efectos computacionales necesarios para que este tipo de programas tengan interacción alguna, es por esto que las funciones monádicas, que se encargan de encapsular estos efectos y así conservar la pureza, representan una estructura importante dentro de los lenguajes funcionales. Sin embargo, debido a que las mónadas poseen una estructura imperativa, no se ha podido establecer un enfoque aceptado para razonar ecuacionalmente sobre éstas. Por tanto, se pretende formalizar (desde un punto de vista computacional) en Agda la propuesta realizada por Gibbons y Hinze en [7] minimizando así los errores en los pasos de cada una de las demostraciones. Así pues, se presentan los conceptos básicos que permitan comprender cómo se razona sobre los programas y se muestra mediante un ejemplo la posibilidad de formalizar este razonamiento