Jenis AFAIU dapat berupa Set
elemen yang merupakan program atau proposition
elemen yang merupakan Bukti. Jadi berdasarkan pemahaman ini:
Inductive prod (X Y: Type) : Set :=
| pair: X -> Y -> prod X Y.
Kode berikut harus dikompilasi tetapi itu bukan karena kesalahan berikut. Jika saya berubah Set
dengan Type
atau yang lain Type
dengan Set
itu mengkompilasi dengan baik. Dapatkah seseorang membantu saya memahami apa arti kesalahan berikut? Saya mencoba untuk belajar sendiri Coq menggunakan buku Yayasan Perangkat Lunak.
Kesalahan:
Error: Large non-propositional inductive types must be in Type.
dependent-types
coq
Abhishek Kumar
sumber
sumber
Jawaban:
Coq memiliki 3 tipe "besar":
Prop
Set
Set
Type
adalah supertype dari keduanya, memungkinkan Anda untuk menulis kode setelah itu bekerja dengan baikSaya cukup yakin kesalahan Anda karena Anda mendefinisikan
Set
parameter yang bisaType
, yang artinya bisaProp
, yang tidak diizinkan. Jika Anda mengubah ini:kode Anda harus berfungsi.
sumber
Prop
kecuali Anda menambahkannya sebagai aksioma.