Classical reasoning support #
noncomputable def
Classical.indefiniteDescription
{α : Sort u}
(p : α → Prop)
(h : ∃ x, p x)
:
{ x // p x }
Instances For
Diaconescu's theorem: excluded middle from choice, Function extensionality and propositional extensionality.
Instances For
Instances For
All propositions are Decidable
.
Instances For
Instances For
noncomputable def
Classical.strongIndefiniteDescription
{α : Sort u}
(p : α → Prop)
(h : Nonempty α)
:
{ x // (∃ y, p y) → p x }
Instances For
the Hilbert epsilon Function
Instances For
theorem
Classical.epsilon_spec_aux
{α : Sort u}
(h : Nonempty α)
(p : α → Prop)
:
(∃ y, p y) → p (Classical.epsilon p)
theorem
Classical.epsilon_spec
{α : Sort u}
{p : α → Prop}
(hex : ∃ y, p y)
:
p (Classical.epsilon p)
theorem
Classical.axiomOfChoice
{α : Sort u}
{β : α → Sort v}
{r : (x : α) → β x → Prop}
(h : ∀ (x : α), ∃ y, r x y)
:
∃ f, (x : α) → r x (f x)
the axiom of choice
by_cases (h :)? p
splits the main goal into two cases, assuming h : p
in the first branch, and h : ¬ p
in the second branch.