Moreira, Pereira & de Sousa, On the Mechanisation of Kleene Algebra in Coq da una buena construcción verificada de la derivada Antimirov de regexps en Coq. Es bastante fácil leer un CFA de esta construcción y calcular la intersección de las expresiones regulares.
No estoy seguro de por qué separa Coq de la programación dependiente: Coq esencialmente está programando en un cálculo lambda de tipo dependiente polimórfica con tipos inductivos (es decir, CIC, el cálculo de construcciones inductivas).
nunca he oído hablar de una formalización de las expresiones regulares en un idioma escrito de forma dependiente, ni he oído hablar de algo como un derivado Antimirov similar a las expresiones regulares con marcha atrás, pero Becchi & Crowley, Extending Finite Automata to Efficiently Match Perl-Compatible Regular Expressions proporcionar una idea de finito un autómata de estado que coincide con un lenguaje de expresiones regulares tipo Perl. Eso podría ser atractivo para los formalisers en el futuro cercano.
Según "El dominio de expresiones regulares" (un libro que recomiendo, ver http://regex.info/) expresiones regulares son bastante ocasional en hecho debido a sus habilidades mejoradas, por lo que la teoría matemática solo está disponible para tipos de expresiones regulares simples/básicas. ¿Esto tiene implicaciones para usarlos en la asistencia de prueba? –
Sí, lo hace: hace las pruebas más complicadas :) De hecho, por "expresiones regulares" me refiero a las básicas que están estrictamente definidas en la teoría del lenguaje formal. Me gustaría saber si hubo intentos de especificar referencias retrospectivas u otras construcciones no regulares. Soy consciente de formalisations bastante limitadas de r.e básico. en Nuprl y Coq. Dado que estas formalizaciones se derivaron de la teoría, en lugar de la práctica de programación, no explicaron las características no regulares. –