AI-Assisted Completion of CertiGC Proofs: An Experience Report
Este relatório de experiência detalha como ferramentas assistidas por IA (Codex) foram utilizadas para estabilizar e completar a prova do coletor de lixo geracional CertiGC verificado em Rocq, ao reorganizar a verificação em torno de um novo invariante de aresta-retroativa registrada para lidar com atualizações mutáveis, enquanto especialistas humanos focaram em adjudicar invariantes e auditar o caminho da prova para garantir a correção.
Artigo original sob licença CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Esta é uma explicação gerada por IA do artigo abaixo. Não foi escrita nem endossada pelos autores. Para precisão técnica, consulte o artigo original. Ler aviso legal completo
Imagine que você é o arquiteto-chefe de uma enorme biblioteca mágica chamada CertiGC. Esta biblioteca não apenas armazena livros; ela é um sistema vivo e pulsante que limpa automaticamente livros antigos e não utilizados para abrir espaço para novos. Durante anos, a biblioteca funcionou com uma regra simples: "Uma vez que um livro é colocado em uma prateleira, ninguém jamais o move ou escreve uma nota apontando para um livro mais novo." Essa regra tornava o trabalho da equipe de limpeza fácil. Eles podiam varrer as prateleiras sabendo que nenhum livro antigo apontaria subitamente para um novinho em folha.
Mas então, a biblioteca decidiu ficar emocionante. Eles quiseram permitir atualizações mutáveis: permitir que os bibliotecários escrevessem novas notas em livros antigos que apontassem para chegadas novinhas em folha. De repente, a regra antiga ("nenhum livro antigo apontando para novos") foi quebrada. O mapa da equipe de limpeza agora estava errado. Se eles continuassem varrendo com base no mapa antigo, perderiam os novos livros para os quais as notas antigas apontavam e esses livros seriam jogados fora por engano!
Esta é a história de uma equipe que usou um assistente de IA superinteligente, chamado Codex, para consertar o mapa de limpeza da biblioteca. Mas aqui está a reviravolta: o Codex não inventou magicamente um novo mapa do nada. Em vez disso, o Codex agiu como um estagiário incansável e hiperorganizado que podia ler milhares de páginas, testar novas ideias e executar a "simulação de limpeza" repetidas vezes, enquanto um especialista humano ficava de prontidão para dizer: "Sim, essa ideia funciona" ou "Não, isso quebra as regras".
O Grande Problema: O Mapa Quebrado
O mapa original dependia de uma regra de "Sem Aresta-para-Trás" (No-Backward-Edge). Pense nisso como um sistema de ruas de mão única onde você só pode dirigir para frente no tempo. Mas com as novas atualizações "mutáveis", você poderia de repente dirigir para trás de um bairro antigo para um novo. O mapa antigo dizia: "Isso é impossível!" A nova realidade dizia: "Isso acontece o tempo todo!"
Se a equipe tentasse forçar o mapa antigo a funcionar, teria que fingir que as viagens para trás nunca aconteceram. Isso significaria que a biblioteca seria apenas "correta" para uma versão entediante de si mesma, que não fazia as coisas novas e legais. Esse não era o objetivo. Eles precisavam de uma nova regra que admitisse que as viagens para trás eram possíveis, mas apenas se fossem registradas em um livro de registros especial.
O Papel da IA: O Estagiário Incansável
O especialista humano sabia que precisavam de uma nova regra: "Sempre que um livro antigo apontar para um novo, ele deve ser escrito no livro de registros 'Conjunto Lembrado' (Remembered Set)."
Eles pediram ao Codex que ajudasse a construir a prova de que essa nova regra manteria a biblioteca segura. O Codex não escreveu apenas a resposta final. Ele agiu como um detetive que:
- Leu o código: Escaneou as plantas da biblioteca.
- Propôs a regra: Sugeriu o conceito de "Aresta-para-Trás-Registrada" (Recorded-Backward-Edge) (a ideia do livro de registros).
- Testou a regra: Executou a simulação de limpeza da biblioteca (o "kernel Rocq") milhares de vezes.
- Corrigiu os bugs: Quando a simulação falhava, o Codex ajustava os scripts de prova, tentava um ângulo diferente e executava novamente.
O trabalho do especialista humano era a parte mais crítica: O Juiz. O Codex podia sugerir uma regra, mas o humano tinha que decidir se essa regra realmente correspondia ao comportamento do mundo real da biblioteca. Por exemplo, o Codex poderia ter sugerido: "Vamos apenas fingir que o livro de registros não existe para o relatório final". O humano disse: "Não! O livro de registros é real. Não podemos escondê-lo."
Os Resultados: Uma Biblioteca Limpa
Após muito trabalho, a equipe teve sucesso.
- O Conserto: Eles substituíram a regra quebrada "Sem Aresta-para-Trás" pela nova regra "Aresta-para-Trás-Registrada".
- A Prova: O processo de limpeza da biblioteca foi provado como seguro, mesmo com as novas atualizações. O teorema final (o "Grande Certificado") ainda parecia o mesmo para o mundo exterior: "A biblioteca está limpa e organizada". Mas, por baixo, a lógica era muito mais inteligente.
- A Limpeza: Mesmo após a prova principal ser aceita, a equipe não parou. Eles dedicaram um tempo extra (de 1º de maio a 3 de maio) auditando as regras para garantir que nenhuma suposição antiga e quebrada estivesse escondida no código. Eles removeram uma condição "obsoleta" que havia restado da versão antiga e entediante da biblioteca.
O Que Isso Nos Diz
O artigo sugere que ferramentas de IA como o Codex são incríveis para manutenção e reparo. Elas podem ser a parceira perfeita para um especialista humano quando o trabalho envolve:
- Propagação de Invariantes: Pegar uma nova regra e garantir que ela funcione em cada canto de uma base de código massiva.
- Limpeza: Corrigir scripts de prova bagunçados e remover código antigo e inútil.
- Teste: Executar a "simulação" (o compilador) repetidamente para ver se uma pequena mudança quebra algo.
No entanto, o artigo é muito claro sobre o que a IA não consegue fazer sozinha.
- Ela não descobriu a solução inteira: O humano teve que entender a semântica da biblioteca e decidir qual deveria ser a nova regra.
- Ela não substituiu o juiz humano: A IA podia propor uma regra, mas o humano tinha que verificar se essa regra não enfraquecia acidentalmente as garantias de segurança da biblioteca.
- Não foi uma "varinha mágica": A IA não escreveu toda a prova de uma só vez. Foi um processo "supervisionado e orientado pelo verificador". O humano estava sempre no controle, guiando a IA, rejeitando ideias ruins e garantindo que o resultado final fosse realmente correto.
Os Números
A equipe trabalhou nisso por um tempo. A "fase assistida pelo Codex" (quando a IA estava fazendo o trabalho pesado) ocorreu entre 22 de abril e 3 de maio de 2026.
- Durante esse período, houve 51 commits de git (atualizações no código).
- A IA fez 13.305 chamadas de ferramenta (ações como ler arquivos, executar testes ou editar código).
- O humano deu 415 prompts (instruções para a IA).
- A IA passou 59,3 horas ativas trabalhando no problema.
O artigo enfatiza que isso não foi um "problema resolvido" onde a IA fez tudo sozinha. Em vez disso, foi uma colaboração bem-sucedida onde a IA lidou com o trabalho tedioso e repetitivo de verificar e corrigir, enquanto o humano forneceu a compreensão profunda e a palavra final sobre o que é verdade. O resultado é uma biblioteca que é segura, verificada e pronta para o futuro.
Afogado em artigos na sua área?
Receba digests diários dos artigos mais recentes que correspondam às suas palavras-chave de pesquisa — com resumos técnicos, no seu idioma.