Los tipos de AFAIU pueden ser Set
cuyos elementos son programas o proposition
cuyos elementos son pruebas. Entonces, en base a este entendimiento:
Inductive prod (X Y: Type) : Set :=
| pair: X -> Y -> prod X Y.
El siguiente código debe compilarse, pero no se debe al siguiente error. Si cambio Set
con Type
u otro Type
con Set
él se compila bien. ¿Alguien puede ayudarme a entender lo que significa el siguiente error? Estoy tratando de enseñarme Coq usando el libro de Fundamentos de Software.
Error:
Error: Large non-propositional inductive types must be in Type.
2
Los probadores de teoremas siempre han sido un área gris para CS.SE, pero supongo que este es un buen candidato para que los mods migren a StackOverflow.
—
jmite
Esta pregunta tiene algunas respuestas aquí .
—
Anton Trunov
@jmite Dado que esta pregunta es sobre el cálculo de las construcciones con Coq simplemente sirviendo como sintaxis concreta, creo que está en el tema aquí.
—
Gilles 'SO- deja de ser malvado'