I tipi AFAIU possono essere a i Set
cui elementi sono programmi o i proposition
cui elementi sono Prove. Quindi in base a questa comprensione:
Inductive prod (X Y: Type) : Set :=
| pair: X -> Y -> prod X Y.
Il seguente codice dovrebbe essere compilato ma non a causa del seguente errore. Se cambio Set
con Type
o l'altro Type
con Set
esso si compila bene. Qualcuno può aiutarmi a capire cosa significa il seguente errore? Sto cercando di insegnare a me stesso Coq usando il libro Software Foundations.
Errore:
Error: Large non-propositional inductive types must be in Type.