Apakah ada cara untuk membuktikan teorema berikut dalam Coq?
Theorem bool_pirrel : forall (b : bool) (p1 p2 : b = true), p1 = p2.
EDIT : Upaya memberikan penjelasan singkat untuk "apa bukti tidak relevan" (koreksi saya seseorang jika saya salah atau tidak akurat)
Gagasan dasarnya adalah bahwa dalam dunia proposisi (atau Prop
semacamnya dalam Coq), yang benar-benar Anda (dan Anda harus) pedulikan adalah provabilitas proposisi, bukan buktinya, mungkin ada banyak (atau tidak ada). Jika Anda memiliki banyak bukti, dari sudut pandang provabilitas, mereka sama dalam arti bahwa mereka membuktikan proposisi yang sama . Jadi perbedaan mereka tidak relevan. Ini berbeda dari sudut pandang komputasi di mana Anda benar-benar peduli tentang perbedaan dua istilah, misalnya, pada dasarnya, Anda tidak ingin dua penghuni bool
jenis (atau Set
dalam kata-kata Coq), yaitu true
dan false
menjadi sama. Tetapi jika Anda memasukkannya Prop
, mereka diperlakukan sama.