Arnaud Spiwack queria representar feixes em Haskell, mas a definição dos livros-texto trazia um problema prático: as peneiras contêm muitas representações redundantes da mesma informação de correspondência, e sua construção dependente de pullback exigia tipagem dependente demais para Haskell. A abordagem óbvia — traduzir a definição literalmente — tornaria estados ilegais representáveis e enterraria o programa em dados irrelevantes.

Ele primeiro construiu um exemplo concreto em torno de expressões aritméticas. Um pré-feixe podia puxar valores de volta ao longo de expressões, mas a operação condicional desejada exigia um feixe para colar dois ramos sobre uma cobertura booleana. A implementação, portanto, tornou a colagem uma operação explícita de classe de tipos, e depois a generalizou em um Site cujas famílias tipadas Cover e Gen descrevem quais peças podem ser montadas.

O site tipado remove o fardo da peneira de pullback: a colagem pode operar em qualquer flecha, e os geradores não precisam ser representados como flechas reais. Produtos, exponenciais, imersões de Yoneda, coprodutos e listas recursivas podem então ser definidos no mesmo estilo. Sheafify atua como uma construção de feixe livre ao armazenar operações de colagem em vez de avaliá-las prematuramente, enquanto PFun carrega a variância necessária para exponenciais.

O resultado é um repositório de demonstração e uma implementação em estilo Haskell da ideia abstrata, não uma alegação de que todo detalhe matemático desaparece. Spiwack deixa explicitamente os pontos fixos sem resolução, mas o projeto converte uma definição que era frouxa demais para a linguagem em blocos de construção tipados e operacionais, e torna preciso o desconhecido restante.

Representar coberturas como tipos e então colar explicitamente

Peneiras literais codificam valores redundantes de famílias de correspondência e permitem estados que deveriam ser impossíveis.

A peneira de pullback necessária para exponenciais exige tipagem dependente além do que a implementação em Haskell conseguia expressar confortavelmente.

Coberturas e geradores tipados mantêm pequena a interface válida de colagem, removendo representações irrelevantes.

Sheafify armazena a sintaxe de colagem, permitindo construções livres como coprodutos e listas recursivas sem executar as operações antecipadamente.

Tornar os pontos fixos uma fronteira explícita não resolvida impede que a implementação finja resolver o que ainda não sabe.

Quando uma definição formal cria estados ilegais e tipagem dependente impossível, codifique coberturas válidas em tipos e exponha apenas operações de colagem executáveis. Mantenha construções livres para composição.

O projeto produziu um repositório de demonstração com instâncias concretas e abstratas de Site/Sheaf, além de uma fronteira mais clara em torno do que a codificação pode e não pode expressar. Os pontos fixos permanecem sem resolução, mas a abordagem de coberturas tipadas torna as operações de feixe utilizáveis em Haskell sem importar todo o peso da maquinaria dependente de peneiras.

CONFIRA AS EVIDÊNCIAS

As fontes

  1. Subcanonical coverage nLab · ncatlab.org
  2. Pursuing Shtuck HAL / Pierre-Marie Pédrot · inria.hal.science