noncomputable
def
classical.indefinite_description
{α : Sort u}
(p : α → Prop)
(h : ∃ (x : α), p x) :
{x // p x}
Equations
- classical.indefinite_description p h = classical.choice _
- _ = _
Equations
Equations
Equations
@[instance]
Equations
Equations
Equations
- classical.type_decidable_eq α = λ (x y : α), classical.prop_decidable (x = y)
noncomputable
def
classical.strong_indefinite_description
{α : Sort u}
(p : α → Prop)
(h : nonempty α) :
{x // (∃ (y : α), p y) → p x}
Equations
- classical.strong_indefinite_description p h = dite (∃ (x : α), p x) (λ (hp : ∃ (x : α), p x), let xp : {x // p x} := classical.indefinite_description (λ (x : α), p x) hp in ⟨xp.val, _⟩) (λ (hp : ¬∃ (x : α), p x), ⟨classical.choice h, _⟩)
Equations
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.axiom_of_choice
{α : Sort u}
{β : α → Sort v}
{r : Π (x : α), β x → Prop}
(h : ∀ (x : α), ∃ (y : β x), r x y) :
∃ (f : Π (x : α), β x), ∀ (x : α), r x (f x)
theorem
classical.skolem
{α : Sort u}
{b : α → Sort v}
{p : Π (x : α), b x → Prop} :
(∀ (x : α), ∃ (y : b x), p x y) ↔ ∃ (f : Π (x : α), b x), ∀ (x : α), p x (f x)