Documentation

Init.Classical

noncomputable def Classical.indefiniteDescription {α : Sort u} (p : α → Prop) (h : ∃ x, p x) :
{ x // p x }
Equations
noncomputable def Classical.choose {α : Sort u} {p : α → Prop} (h : ∃ x, p x) :
α
Equations
theorem Classical.choose_spec {α : Sort u} {p : α → Prop} (h : ∃ x, p x) :
theorem Classical.em (p : Prop) :
p ∨ ¬p
theorem Classical.exists_true_of_nonempty {α : Sort u} :
Nonempty α → ∃ x, True
noncomputable def Classical.inhabited_of_nonempty {α : Sort u} (h : Nonempty α) :
Equations
noncomputable def Classical.inhabited_of_exists {α : Sort u} {p : α → Prop} (h : ∃ x, p x) :
Equations
noncomputable def Classical.propDecidable (a : Prop) :
Equations
noncomputable def Classical.decidableInhabited (a : Prop) :
Equations
noncomputable def Classical.typeDecidableEq (α : Sort u) :
Equations
noncomputable def Classical.typeDecidable (α : Sort u) :
α ⊕' (α → False)
Equations
noncomputable def Classical.strongIndefiniteDescription {α : Sort u} (p : α → Prop) (h : Nonempty α) :
{ x // (∃ y, p y) → p x }
Equations
noncomputable def Classical.epsilon {α : Sort u} [h : Nonempty α] (p : α → Prop) :
α
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) :
theorem Classical.epsilon_singleton {α : Sort u} (x : α) :
(Classical.epsilon fun y => y = x) = x
theorem Classical.axiomOfChoice {α : Sort u} {β : α → Sort v} {r : (x : α) → β x → Prop} (h : ∀ (x : α), ∃ y, r x y) :
∃ f, (x : α) → r x (f x)
theorem Classical.skolem {α : Sort u} {b : α → Sort v} {p : (x : α) → b x → Prop} :
(∀ (x : α), ∃ y, p x y) ↔ ∃ f, (x : α) → p x (f x)
theorem Classical.propComplete (a : Prop) :
theorem Classical.byCases {p : Prop} {q : Prop} (hpq : p → q) (hnpq : ¬p → q) :
q
theorem Classical.byContradiction {p : Prop} (h : ¬p → False) :
p