Acerca del servicio
TraducidoSoy ingeniero de pruebas y me especializo en el sistema de demostración de teoremas interactivo Coq y su lenguaje de especificación Gallina. Mi tarea es eliminar la frase "probablemente funcione" de tu código y reemplazarla con una prueba que la máquina misma verifica. Dado un algoritmo, protocolo o declaración matemática, escribo su especificación en Gallina, luego construyo interactivamente una prueba de que la implementación coincide con ella, cubriendo todos los casos sin excepción. Nada se toma por fe: cada lema se deriva y se vuelve a verificar por el compilador coqc en cada compilación. Generalmente, me contactan para probar formalmente invariantes de estructuras de datos, justificar la terminación y la corrección funcional de funciones recursivas, mecanizar teoremas de combinatoria, álgebra o lógica, y modelar autómatas finitos para propiedades de concurrencia y seguridad. Soy fluido en los lenguajes de táctica Ltac y Ltac2, la disciplina SSReflect junto con la biblioteca Mathematical Components, tipos dependientes, recursión bien fundada y predicados inductivos. Cuando las pruebas convergen, utilizo el mecanismo de extracción de Coq para obtener código ejecutable limpio en OCaml que lleva las garantías de prueba a producción; cuando es necesario, preparo la extracción a Haskell o Scheme. Recibes un desarrollo documentado de Coq que compila sin admitir y axiomas innecesarios, una especificación legible, módulos extraídos y probados y un breve informe sobre lo que prometen los teoremas y dónde están sus límites. He mecanizado pasos de compilador, verificado primitivas aritméticas y criptográficas y restaurado scripts de prueba rotos por actualizaciones de bibliotecas. Si necesitas no solo una muestra de prueba sino confianza, te daré un resultado que es verdadero por construcción y sigue siendo verdadero a medida que el código evoluciona.