Os tipos AFAIU podem ser a Set
cujos elementos são programas ou a proposition
cujos elementos são Provas. Então, com base neste entendimento:
Inductive prod (X Y: Type) : Set :=
| pair: X -> Y -> prod X Y.
O código a seguir deve ser compilado, mas isso não ocorre devido ao seguinte erro. Se eu mudar Set
com Type
ou o outro Type
com Set
ele compila bem. Alguém pode me ajudar a entender o que significa o seguinte erro? Estou tentando me ensinar Coq usando o livro Software Foundations.
Erro:
Error: Large non-propositional inductive types must be in Type.
2
Os provadores de teoremas sempre foram uma área cinzenta para o CS.SE, mas acho que esse é um bom candidato para os mods migrarem para o StackOverflow.
—
Jmite 01/09/19
Esta pergunta tem algumas respostas aqui .
—
Anton Trunov
@ jmite Dado que esta pergunta é sobre o cálculo de construções com Coq apenas servindo como sintaxe concreta, acho que é sobre o assunto aqui.
—
Gilles 'SO- stop be evil'