mathlib documentation

data.​equiv.​denumerable

data.​equiv.​denumerable

@[class]
structure denumerable  :
Type u_1 → Type u_1

A denumerable type is one which is (constructively) bijective with ℕ. Although we already have a name for this property, namely α ≃ ℕ, we are here interested in using it as a typeclass.

Instances
theorem denumerable.​decode_is_some (α : Type u_1) [denumerable α] (n : ℕ) :

def denumerable.​of_nat (α : Type u_1) [f : denumerable α] :
ℕ → α

Equations
@[simp]

@[simp]
theorem denumerable.​of_nat_of_decode {α : Type u_1} [denumerable α] {n : ℕ} {b : α} :

@[simp]
theorem denumerable.​encode_of_nat {α : Type u_1} [denumerable α] (n : ℕ) :

@[simp]
theorem denumerable.​of_nat_encode {α : Type u_1} [denumerable α] (a : α) :

def denumerable.​mk' {α : Type u_1} :
α ≃ ℕ → denumerable α

Equations
def denumerable.​of_equiv (α : Type u_1) {β : Type u_2} [denumerable α] :
β ≃ α → denumerable β

Equations
@[simp]
theorem denumerable.​of_equiv_of_nat (α : Type u_1) {β : Type u_2} [denumerable α] (e : β ≃ α) (n : ℕ) :

def denumerable.​equiv₂ (α : Type u_1) (β : Type u_2) [denumerable α] [denumerable β] :
α ≃ β

Equations
@[instance]

Equations
@[instance]
def denumerable.​sum {α : Type u_1} {β : Type u_2} [denumerable α] [denumerable β] :

Equations
@[instance]
def denumerable.​sigma {α : Type u_1} [denumerable α] {γ : α → Type u_3} [Π (a : α), denumerable (γ a)] :

Equations
@[simp]
theorem denumerable.​sigma_of_nat_val {α : Type u_1} [denumerable α] {γ : α → Type u_3} [Π (a : α), denumerable (γ a)] (n : ℕ) :

@[instance]
def denumerable.​prod {α : Type u_1} {β : Type u_2} [denumerable α] [denumerable β] :
denumerable (α × β)

Equations
@[simp]
theorem denumerable.​prod_of_nat_val {α : Type u_1} {β : Type u_2} [denumerable α] [denumerable β] (n : ℕ) :

@[instance]
def denumerable.​ulift {α : Type u_1} [denumerable α] :

Equations
@[instance]
def denumerable.​plift {α : Type u_1} [denumerable α] :

Equations
def denumerable.​pair {α : Type u_1} [denumerable α] :
α × α ≃ α

Equations
theorem nat.​subtype.​exists_succ {s : set ℕ} [infinite ↥s] (x : ↥s) :
∃ (n : ℕ), x.val + n + 1 ∈ s

Equations
theorem nat.​subtype.​le_succ_of_forall_lt_le {s : set ℕ} [infinite ↥s] [decidable_pred s] {x y : ↥s} :
(∀ (z : ↥s), z < x → z ≤ y) → x ≤ nat.subtype.succ y

theorem nat.​subtype.​of_nat_surjective_aux {s : set ℕ} [infinite ↥s] [decidable_pred s] {x : ℕ} (hx : x ∈ s) :
∃ (n : ℕ), nat.subtype.of_nat s n = ⟨x, hx⟩