ExistsConsideredHarmful
One should never use exists
and \/
because the resulting types are in Prop
. This means that case analysis can never occur on objects of these types to produce an object in Set
. Inevitably there comes a time when someone will want to do this with the result of your lemma, and he/she will be angry that they cannot.
Instead use sig
(aka {x : T | P}
) and sumbool
/ {A}+{B}
(in Set
) or sum
/A + B
(in Type
). See under Coq.Init.Specif
and Coq.Init.Datatypes
.
To the extent possible under law, the contributors of “Cocorico!, the Coq wiki” have waived all copyright and related or neighboring rights to their contributions.
By contributing to Cocorico!, the Coq wiki, you agree that you hold the copyright and you agree to license your contribution under the CC0 license or you agree that you have permission to distribute your contribution under the CC0 license.