Non-Derivability Results in Polymorphic Dependent Type Theory

Este artigo demonstra, através da construção de modelos contrários, que princípios de indução e coindução para tipos de dados não são deriváveis no cálculo puro λλP2, estabelecendo que extensões como a extensão funcional de funções são essenciais para a prova desses princípios.

Herman Geuvers

Publicado 2026-03-05
📖 4 min de leitura🧠 Leitura aprofundada

Each language version is independently generated for its own context, not a direct translation.

Imagine que você está construindo uma cidade de Lego chamada Lógica. Nessa cidade, existem regras estritas sobre como você pode encaixar as peças. O autor deste artigo, Herman Geuvers, está investigando se é possível construir certos "prédios" (conceitos matemáticos) usando apenas as peças básicas de um conjunto específico chamado λP2.

O objetivo do artigo é celebrar o aniversário de um colega, Stefano Berardi, e responder a uma pergunta que ele e outros pesquisadores faziam há anos: "O que falta nas nossas peças básicas para que possamos provar certas verdades matemáticas?"

Aqui está a explicação simplificada, usando analogias do dia a dia:

1. O Problema: A Cidade Inacabada

Na cidade de λP2, você consegue criar estruturas básicas, como números (0, 1, 2...) e listas. Você pode até definir o que é um número. Mas há um problema: você não consegue provar que esses números funcionam como esperamos.

  • A Analogia: Imagine que você construiu um castelo de Lego. Você tem os blocos, mas não tem a "cola" ou o "manual de instruções" que garante que, se você empurrar uma parede, ela não vai desmoronar.
  • O Princípio da Indução: É como o manual que diz: "Se o primeiro bloco está firme, e se cada bloco segura o próximo, então todo o castelo é firme." Geuvers mostra que, no λP2 puro, esse manual não existe. Você não consegue provar que a estrutura é sólida, não importa como você tente encaixar as peças.

2. A Solução Parcial: Adicionando Novas Peças

Outros pesquisadores descobriram que, se você adicionar peças extras ao seu kit de Lego, o manual de instruções aparece. Essas peças extras são:

  1. Tipos de Identidade: Para dizer "isto é igual àquilo".
  2. Unicidade de Provas (UIP): A ideia de que, se duas coisas são iguais, não importa como você provou que são iguais; a prova é a mesma.
  3. Tipos Sigma (Σ): Uma maneira de empacotar dados juntos.
  4. Extensão Funcional (FunExt): Uma regra que diz: "Se duas máquinas (funções) produzem o mesmo resultado para todas as entradas, elas são a mesma máquina".

3. O Grande Descoberta: A Peça Mágica (FunExt)

O artigo de Geuvers faz um teste de laboratório. Ele pega o kit de Lego e adiciona apenas as peças de Identidade e Sigma (sem a Extensão Funcional).

  • O Resultado: O manual de instruções (Indução) ainda não aparece. O castelo continua inseguro.
  • A Conclusão: A peça Extensão Funcional (FunExt) é a chave mágica. Sem ela, você não consegue provar que seus números ou listas funcionam corretamente, mesmo tendo todas as outras peças novas. É como tentar construir um motor de carro sem o pistão: você tem o chassi e as rodas, mas o motor não liga.

4. Outros Prédios que Não Funcionam

Geuvers também olhou para outros tipos de construções:

  • Quotients (Divisões/Classificações): Imagine que você quer classificar todos os carros por cor, ignorando a marca. Você quer dizer "um Ford vermelho é o mesmo que um Fiat vermelho".

    • O Resultado: No λP2 básico, você não consegue criar essa classificação de forma inteligente e universal. A cidade não permite que você "apague" as diferenças irrelevantes de forma automática.
  • Streams (Fluxos Infinitos): Imagine uma fita de vídeo infinita que nunca para de rodar.

    • O Resultado: Você pode desenhar a fita, mas não consegue provar que duas fitas são "iguais" apenas porque elas mostram a mesma imagem a cada segundo. No λP2, a igualdade é muito rígida; duas fitas podem parecer iguais para sempre, mas o sistema diz que são diferentes porque foram construídas de formas ligeiramente distintas.

5. Como ele provou isso? (Os Espelhos)

Geuvers não apenas disse "não funciona". Ele construiu espelhos (modelos) da cidade.

  • A Analogia: Imagine que você cria um "mundo paralelo" onde as regras do Lego são um pouco diferentes. Nesse mundo paralelo, ele mostra que, se você tentar usar o manual de instruções, ele simplesmente não existe ou é uma folha em branco.
  • Se algo não funciona nesse mundo paralelo (que segue as mesmas regras básicas), então é impossível provar que funciona no mundo real da lógica pura. Ele usou esses "mundos espelho" para mostrar que, sem a peça mágica (FunExt), a cidade de λP2 está incompleta.

Resumo Final

Este artigo é como um relatório de engenharia que diz:

"Caros colegas, descobrimos que nossa cidade de lógica básica (λP2) tem buracos. Não conseguimos provar que nossos números são sólidos nem que nossas classificações funcionam. Se adicionarmos apenas algumas ferramentas novas, ainda não resolve. Precisamos obrigatoriamente da ferramenta chamada Extensão Funcional para que tudo funcione como deveria."

É uma homenagem a Stefano Berardi, que começou a investigar esses buracos na lógica, mostrando que, às vezes, para construir algo sólido, precisamos de regras mais flexíveis sobre o que significa "ser igual".