Tenho dificuldades em entender a prova de forte normalização para o cálculo de construções. Tento seguir a prova no artigo de Herman Geuvers "Uma prova curta e flexível de Normalização Forte para o Cálculo de Construções".
Eu posso seguir bem a linha principal de raciocínio. Geuvers constrói para cada tipo uma interpretação base em alguma avaliação das variáveis de tipo \ xi (\ alpha) . E então ele constrói alguma interpretação de termo (\! | M | \!) _ \ Rho com base em alguma avaliação das variáveis de termo \ rho (x) e prova que, para avaliações válidas, a asserção (\! | M | \!) _ \ rho \ in [\! [T] \!] _ \ xi para todos os \ Gamma \ vdash M: T mantém.
Meu problema: para tipos fáceis (como tipos do sistema F), a interpretação do tipo é realmente um conjunto de termos, portanto a asserção faz sentido. Porém, para tipos mais complexos, a interpretação não é um conjunto de termos, mas um conjunto de funções de algum espaço funcional apropriado. Eu acho que quase entendo a construção dos espaços funcionais, mas ele não pode atribuir nenhum significado a para os mais complexos tipos .
Alguém pode explicar ou fornecer links para algumas apresentações mais compreensíveis da prova?
Edit: Deixe-me tentar esclarecer a questão. Um contexto possui declarações para as variáveis de tipo e variáveis de objeto. Uma avaliação de tipo é válida se, para todos com então for válido. Mas pode ser um elemento de e não apenas . Portanto, nenhuma avaliação de termo válida pode ser definida para . deve ser um termo e não uma função de um espaço de função.
Edit 2: Exemplo que não funciona
Vamos fazer a seguinte derivação válida:
No último contexto, uma avaliação de tipo válida deve satisfazer . Para esse tipo de avaliação, não há avaliação de termo válida.
Respostas:
Infelizmente, não tenho certeza de que existem mais recursos amigáveis para iniciantes do que a conta do Geuvers. Você pode tentar esta nota de Chris Casinghino, que apresenta várias provas com detalhes excruciantes.
Não sei se entendi a essência da sua confusão, mas acho que uma coisa importante a ser observada é o seguinte lema (Corolário 5.2.14), comprovado no texto clássico de Barendregt :
Isso significa que enquanto pode ser uma função complicada, se mantido, então deve ser um conjunto de termos .[[T]]ξ Γ⊢M:T [[T]]ξ
Isso é insinuado no esquema (seção 3.1), onde somente se , o que está de acordo com nossa expectativa, de que a interpretação de um tipo deve ser um conjunto de termos, por exemplo, (de fato, !)(|t|)σ∈[[T]]ξ Γ⊢t:T:∗ V(∗)⊆P(Term) V(∗)=SAT
É uma situação comum na teoria dos tipos que, embora apenas estejamos interessados no "tipo base" (aqui ), ainda precisamos definir semântica para coisas de tipos mais altos (daí a necessidade de introduzir ) As coisas funcionam no final, porque apenas o tipo que habita os tipos é (e , mas isso não é realmente importante).∗ SAT∗ ∗ □
fonte