dbaf81e16d
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
16 lines
No EOL
694 B
Markdown
16 lines
No EOL
694 B
Markdown
logic.classes
|
|
=============
|
|
|
|
Useful classes for general logical manipulations.
|
|
|
|
* [inhabited](inhabited.lean) : inhabited types
|
|
* [nonempty](nonempty.lean) : nonempty type
|
|
* [decidable](decidable.lean) : decidable types
|
|
* [congr](congr.lean) : congruences with respect to suitable relations
|
|
|
|
Constructively, inhabited types have a witness, while nonempty types
|
|
are "proof irrelevant". Classically (assuming the axiom in
|
|
`logic.axioms.hilbert`) the two are equivalent. Type class inferences
|
|
are set up to use "inhabited" however, so users should use that to
|
|
declare that types have an element. Use "nonempty" in the hypothesis
|
|
of a theorem when the theorem does not depend on the witness chosen. |