Formalización de pruebas de autómatas finitos en Lean para ingenieros

Fuentes: Formalizing Finite Automata Proofs in Lean for Software Engineers

Este artículo técnico explica cómo formalizar una prueba de teoría de la computación utilizando el lenguaje de programación Lean, dirigido a ingenieros de software con conocimientos básicos de lógica y programación. El autor aborda un problema específico del libro 'Introduction to the Theory of Computation' de Michael Sipser, que requiere demostrar que un conjunto de cadenas binarias de altura tres es un lenguaje regular. La solución se basa en la construcción de un autómata finito determinista (DFA) que reconoce la reversión del lenguaje, aprovechando la propiedad de cierre de la reversión en los lenguajes regulares. El texto detalla la lógica aritmética subyacente, específicamente cómo el acarreo en la suma binaria determina los estados del autómata. Al demostrar que el DFA acepta exactamente el lenguaje requerido, se concluye que el conjunto original es regular. Este enfoque ilustra la viabilidad de la verificación formal de sistemas mediante herramientas modernas como Mathlib, ofreciendo una perspectiva accesible sobre la formalización de propiedades de software y la relación entre la teoría de la computación y la ingeniería de software.