Existe-t-il un moyen de prouver le théorème suivant dans Coq?
Theorem bool_pirrel : forall (b : bool) (p1 p2 : b = true), p1 = p2.
EDIT : Une tentative de donner une brève explication de "ce qu'est la pertinence non pertinente" (corrigez-moi quelqu'un si je me trompe ou je me trompe)
L'idée de base est que dans le monde de la proposition (ou du Prop
genre dans Coq), ce qui vous intéresse (et vous devriez) est vraiment la prouvabilité d'une proposition, pas les preuves de celle-ci, il peut y en avoir beaucoup (ou aucune). Dans le cas où vous avez plusieurs preuves, du point de vue de la prouvabilité, elles sont égales dans le sens où elles prouvent la même proposition . Leur distinction n'est donc pas pertinente. Cela diffère du point de vue informatique où vous vous souciez vraiment de la distinction de deux termes, par exemple, fondamentalement, vous ne voulez pas que les deux habitants du bool
type (ou Set
selon les mots de Coq), à savoir true
et false
soient égaux. Mais si vous les mettez Prop
, ils sont traités de la même manière.