Classical reasoning support #
Given that there exists an element satisfying p, returns one such element.
This is a straightforward consequence of, and equivalent to, Classical.choice.
See also choose_spec, which asserts that the returned value has property p.
Equations
Diaconescu's theorem: excluded middle from choice, Function extensionality and propositional extensionality.
Equations
- Classical.inhabited_of_nonempty h = { default := Classical.choice h }
 
All propositions are Decidable.
Equations
Equations
- Classical.decidableInhabited a = { default := inferInstance }
 
Equations
- Classical.typeDecidableEq α x✝¹ x✝ = inferInstance
 
Equations
- Classical.typeDecidable α = match Classical.propDecidable (Nonempty α) with | isTrue hp => PSum.inl default | isFalse hn => PSum.inr ⋯
 
the Hilbert epsilon Function
Equations
Transfer decidability of ¬ p to decidability of p.
Equations
@[reducible, inline, deprecated Classical.not_and_iff_not_or_not (since := "2025-03-18")]
@[reducible]
Extract an element from an existential statement, using Classical.choose.
Equations
- P.choose = Classical.choose P