← Últimos artigos
💻 computer science

Automating Bitvector and Finite Field Equivalence Proofs in Lean

Este artigo apresenta o BitModEq, uma nova tática Lean que automatiza provas de equivalência entre vetores de bits e corpos finitos usando lemas de intervalo e análise de casos, superando os solucionadores SMT mais avançados na verificação de codificações de circuitos de Prova de Conhecimento Zero.

Autores originais: Elizaveta Pertseva, Valentin Robert, Clark Barrett, James Parker

Publicado 2026-05-15
📖 5 min de leitura🧠 Leitura aprofundada

Autores originais: Elizaveta Pertseva, Valentin Robert, Clark Barrett, James Parker

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

A Visão Geral: Dois Idiomas Diferentes para Matemática

Imagine que você está tentando verificar se uma receita secreta (uma Prova de Conhecimento Zero) funciona corretamente. O problema é que a receita está escrita em dois idiomas diferentes que não se misturam bem:

  1. Campos Finitos: Pense nisso como um mundo de "Matemática de Relógio". Se você tem um relógio com 17 horas, somar 10 e 10 não dá 20; dá 3 (porque você dá a volta). É assim que muitos sistemas criptográficos modernos (como os usados em criptomoedas) fazem suas contas.
  2. Vetores de Bits: Pense nisso como "Matemática de Computador". Computadores não dão a volta como relógios; eles têm apenas um número fixo de interruptores (bits) que estão ligados ou desligados. Se você somar números e esgotar os interruptores, os bits extras são simplesmente cortados.

O Problema:
Quando desenvolvedores constroem esses sistemas criptográficos, eles têm que traduzir a "Matemática de Relógio" para "Matemática de Computador" para fazê-la rodar em hardware real. Essa tradução é chamada de aritmética.

  • Se a tradução estiver errada, todo o sistema de segurança está quebrado.
  • Verificar se a tradução está correta é incrivelmente difícil.
  • Verificação manual é como revisar um romance lendo cada palavra com uma lupa: é preciso, mas leva uma eternidade e está sujeito a erros humanos.
  • Verificação automática (usando solucionadores de computador padrão) é como usar um corretor ortográfico: é rápido, mas frequentemente se confunde com as regras estranhas da "Matemática de Relógio" e desiste de frases complexas.

A Solução: O Tradutor "BitModEq"

Os autores construíram uma nova ferramenta chamada BitModEq dentro de um sistema chamado Lean (que é como um tutor de matemática super rigoroso que verifica cada passo de uma prova).

Pense no BitModEq como um tradutor especializado que não apenas troca palavras; ele entende a lógica por trás das palavras. Ele usa um processo de três etapas para provar que a receita de "Matemática de Relógio" é exatamente a mesma que a receita de "Matemática de Computador":

Etapa 1: O "Desembrulho" (Tradução)

A ferramenta pega a "Matemática de Relógio" (Campos Finitos) e tenta "desembrulhá-la" em números normais (Números Naturais).

  • O Desafio: Na Matemática de Relógio, $5 - 10$ pode ser um número positivo por causa da volta. Na matemática normal, é negativo.
  • O Truque: A ferramenta olha para os números e pergunta: "É possível que este número dê a volta?" Se os números forem pequenos o suficiente (como bits em um computador), ela sabe que a volta não vai acontecer. Ela remove com segurança as regras de "Relógio" e as trata como matemática normal. Se não tiver certeza, ela mantém as regras de "Relógio", mas adiciona uma verificação de segurança.

Etapa 2: A "Rede de Segurança" (Análise de Intervalo)

Este é o segredo do artigo. Antes que a ferramenta tente converter a matemática em bits de computador, ela realiza uma Análise de Intervalo.

  • A Analogia: Imagine que você está arrumando uma mala. Você não apenas joga roupas dentro; você verifica o tamanho da mala e o tamanho das roupas.
  • Como funciona: A ferramenta olha para as variáveis e pergunta: "Qual é o maior valor que este número pode possivelmente ter?"
    • Se ela souber que um número está entre 0 e 1 (como um único interruptor de luz), ela pode ignorar completamente as complexas regras de "Relógio".
    • Esta etapa é crucial porque simplifica o problema tanto que o computador consegue resolvê-lo facilmente. Sem essa verificação de "rede de segurança", o computador fica sobrecarregado pela complexidade.

Etapa 3: O "Blasting de Bits" (Prova Final)

Uma vez que a ferramenta simplificou o problema em pura "Matemática de Computador" (bits), ela usa uma técnica chamada bit-blasting.

  • A Analogia: Isso é como pegar uma fechadura complexa e tentar todas as combinações possíveis de chaves até encontrar a que a abre.
  • Como a ferramenta simplificou o problema na Etapa 2, a "fechadura" agora é pequena o suficiente para o computador tentar todas as combinações instantaneamente e provar que a matemática está correta.

Por Que Isso Importa (Os Resultados)

Os autores testaram sua ferramenta em sistemas criptográficos do mundo real (especificamente Jolt e CirC).

  • A Competição: Eles compararam sua ferramenta com os melhores solucionadores automáticos existentes (como cvc5).
  • O Resultado: Os solucionadores existentes frequentemente ficavam presos ou atingiam o tempo limite quando os problemas ficavam grandes (como números de 32 bits). Eles eram como um corretor ortográfico tentando ler um dicionário.
  • Vitória do BitModEq: A nova ferramenta resolveu 19% mais problemas do que as melhores ferramentas existentes. Ela conseguia lidar com números muito maiores (até 32 bits) onde as outras falhavam.
  • Bônus: Como roda dentro do Lean, a prova é verificada pelo kernel. Isso significa que o computador não apenas chutou; seguiu um conjunto estrito de regras lógicas que são garantidas como corretas, reduzindo o risco de bugs ocultos.

Uma Descoberta do Mundo Real

Durante seus testes, a ferramenta realmente encontrou um bug no compilador CirC. O compilador tinha um erro em como lidava com números grandes (especificamente, um deslocamento à direita de 32 bits). O bug só aparecia com números grandes, motivo pelo qual testes anteriores, em menor escala, o haviam perdido. Os desenvolvedores corrigiram o bug após os autores o reportarem.

Resumo

O artigo apresenta uma nova maneira de verificar automaticamente se a matemática criptográfica funciona corretamente. Em vez de lutar para traduzir entre "Matemática de Relógio" e "Matemática de Computador" manualmente ou com ferramentas desajeitadas, eles construíram um tradutor inteligente que:

  1. Verifica o tamanho dos números primeiro (Análise de Intervalo).
  2. Simplifica a matemática removendo regras de "Relógio" desnecessárias.
  3. Usa lógica de força bruta para provar que o resultado final está correto.

Isso torna a verificação de sistemas de segurança complexos mais rápida, mais confiável e capaz de pegar bugs que outras ferramentas perdem.

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.

Experimentar Digest →