Pregunta

Si he entendido correctamente (principalmente, de la existencia de la applyTactic función), es posible escribir personalizado tácticas para el teorema de armario en Idris.Qué (o donde) son algunos ejemplos que podría usar para aprender cómo hacer esto?

¿Fue útil?

Solución

Hay dos mecanismos para la escritura de encargo de la táctica en Idris:de alto nivel y de bajo nivel de reflexión.

Uso de alto nivel de reflexión, se escribe una función que se ejecuta en la sintaxis, en lugar de en los datos analizados - no va a reducir su argumento.Estas funciones devuelven una nueva táctica, que se define utilizando la pre-existentes tácticas en Idris.Si desea devolver un término de prueba directamente, siempre puedes usar Exact.Un ejemplo de este tipo de reflexión se puede encontrar en la librería de efectos.Alto nivel de reflexión tácticas se invoca mediante byReflection en la prueba de modo.

En los niveles más bajos de la reflexión, que trabajan directamente con los citados términos de Idris del tipo núcleo de la teoría.Una táctica es entonces una función en TT -> List (TTName, TT) -> Tactic donde el primer argumento es el tipo de objetivo, el segundo es el local de la prueba contexto, y el resultado es el mismo como en el de alto nivel de la reflexión.Esto es lo que laughadelic vinculados a por encima de.Estos son invocados mediante applyTactic en la prueba de modo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top