O que é no cálculo de construções?

11

Eu estou olhando para o Cálculo de Construções e seu lugar no Cubo Lambda .

Se bem entendi, cada eixo do cubo pode ser considerado como adicionando outra operação envolvendo tipos ao cálculo de tipo simples, . O primeiro eixo adiciona operadores de tipo a termo, o segundo operador de tipo a tipo e o terceiro operador de digitação dependente ou termo a tipo. O CoC tem todos os três.λ

No entanto, o CoC introduz um termo e declara que pelas regras de inferência , mas, caso contrário, não é usado. Eu entendo que é para as proposições de mesmo nome, mas as proposições lógicas não são definidas em termos disso.PropProp:Type

Você poderia me explicar para que serve o , onde / quando ele aparece e explicar em termos dos eixos do cubo (se é que é possível fazê-lo)?Prop

Michael Rawson
fonte

Respostas:

15

Na teoria tradicional de tipos de Martin-Löf, não há distinção entre tipos e proposições. Isso está sob o lema "proposições como tipos". Mas às vezes há razões para distingui-las. O CoC faz exatamente isso.

Existem muitas variantes de CoC, mas a maioria teria mas não . Outra diferença aparece quando temos infinitos universos de tipos e tornamos impredicativo (é isso que Coq faz). Concretamente, considere uma variante do CoC em que temos e infinitos tipos de universos , , com A regra de formação paraT y p e : P r o p P r o p P r o p T y p e 1 T y p e 2 T y p e 3 P r o p

Prop:Type
Type:PropPropPropType1Type2Type3 ¸¸x:AB(x)AB(x)
Prop:Type1Type1:Type2Type2:Type3
precisa explicar como formar quando é uma proposição ou um tipo, e é uma proposição ou um tipo. Existem quatro combinações:x:AB(x)AB(x)
  1. A:Propx:AB(x):Propx:AB(x):Prop
  2. A:Typeix:AB(x):Propx:AB(x):Prop
  3. A:Propx:AB(x):Typeix:AB(x):Typei
  4. A:Typeix:AB(x):Typejx:AB(x):Typemax(i,j)

O mais interessante é a diferença entre o segundo e o quarto caso. A quarta regra diz que se está no ésimo universo e está no ésimo universo, então o produto está no -thth universo. Mas a segunda regra está nos dizendo que não é apenas "mais um universo na parte inferior", porque em assim que faz, não importa quão grande é. Isso é impredicativo porque nos permite definir elementos dei B ( x ) j max ( i , j ) P r o p x :AiB(x)jmax(i,j)Prop P r o p B(x)A P r o p P r o px:AB(x)PropB(x)APropquantificando sobre si.Prop

Um exemplo concreto seria versus O primeiro produto reside em , mas o segundo está em (e não em , apesar de estarmos quantificando sobre um elemento de ). Em particular, isto significa que um dos valores possíveis para é em si. Π Um : P r o p UmUm T y p e 2Prop T y p e um T y p e 1UmΠ Um : P r o p UmUMA

A:Type1AA
A:PropAA
Type2PropType1Type1AA:PropAA
Andrej Bauer
fonte