Sobre o serviço
TraduzidoSou engenheiro de provas e me especializo no sistema de prova interativa Coq e sua linguagem de especificação Gallina. Minha tarefa é remover a frase "provavelmente funciona" do seu código e substituí-la por uma prova que a própria máquina verifica. Dado um algoritmo, protocolo ou declaração matemática, escrevo sua especificação em Gallina, depois construo interativamente uma prova de que a implementação corresponde a ela, cobrindo todos os casos sem exceção. Nada é aceito pela fé: cada lema é derivado e rechecado pelo compilador coqc a cada compilação. Normalmente sou contatado para provar formalmente invariantes de estruturas de dados, justificar a terminação e a correção funcional de funções recursivas, mecanizar teoremas de combinatória, álgebra ou lógica, e modelar autômatos finitos para propriedades de concorrência e segurança. Sou fluente nas linguagens táticas Ltac e Ltac2, na disciplina SSReflect junto com a biblioteca Mathematical Components, tipos dependentes, recursão bem fundamentada e predicados indutivos. Quando as provas convergem, uso o mecanismo de extração do Coq para obter código executável limpo em OCaml que carrega as garantias de prova para a produção; quando necessário, preparo a extração para Haskell ou Scheme. Você recebe um desenvolvimento Coq documentado que compila sem admitir e axiomas desnecessários, uma especificação legível, módulos extraídos e testados e um relatório curto sobre o que os teoremas prometem e onde estão seus limites. Mecanizei passes de compilador, verifiquei primitivas aritméticas e criptográficas e restaurei scripts de prova quebrados por atualizações de biblioteca. Se você precisa não apenas de uma amostra de teste, mas de confiança, eu lhe darei um resultado que é verdadeiro por construção e permanece verdadeiro à medida que o código evolui.