File: Mathlib/Data/Countable/Defs.lean

full_name: Countable
code: /-- A type `α` is countable if there exists an injective map `α → ℕ`. -/
@[mk_iff countable_iff_exists_injective]
class Countable (α : Sort u) : Prop where
  /-- A type `α` is countable if there exists an injective map `α → ℕ`. -/
  exists_injective_nat' : ∃ f : α → ℕ, Injective f
goal: Prop

full_name: Countable.exists_injective_nat'
code: /-- A type `α` is countable if there exists an injective map `α → ℕ`. -/
@[mk_iff countable_iff_exists_injective]
class Countable (α : Sort u) : Prop where
  /-- A type `α` is countable if there exists an injective map `α → ℕ`. -/
  exists_injective_nat' : ∃ f : α → ℕ, Injective f
goal: ∃ f, Function.Injective f

full_name: countable_iff_exists_injective
code: /-- A type `α` is countable if there exists an injective map `α → ℕ`. -/
@[mk_iff countable_iff_exists_injective]
class Countable (α : Sort u) : Prop where
  /-- A type `α` is countable if there exists an injective map `α → ℕ`. -/
  exists_injective_nat' : ∃ f : α → ℕ, Injective f
goal: Countable α ↔ ∃ f, Function.Injective f

full_name: Countable.exists_injective_nat
code: lemma Countable.exists_injective_nat (α : Sort u) [Countable α] : ∃ f : α → ℕ, Injective f 
goal: ∃ f, Function.Injective f

full_name: instCountableNat
code: instance : Countable ℕ 
goal: Countable ℕ

full_name: Function.Injective.countable
code: protected theorem Function.Injective.countable [Countable β] {f : α → β} (hf : Injective f) :
    Countable α 
goal: Countable α

full_name: Function.Surjective.countable
code: protected theorem Function.Surjective.countable [Countable α] {f : α → β} (hf : Surjective f) :
    Countable β 
goal: Countable β

full_name: exists_surjective_nat
code: theorem exists_surjective_nat (α : Sort u) [Nonempty α] [Countable α] : ∃ f : ℕ → α, Surjective f 
goal: ∃ f, Function.Surjective f

full_name: countable_iff_exists_surjective
code: theorem countable_iff_exists_surjective [Nonempty α] : Countable α ↔ ∃ f : ℕ → α, Surjective f 
goal: Countable α ↔ ∃ f, Function.Surjective f

full_name: Countable.of_equiv
code: theorem Countable.of_equiv (α : Sort*) [Countable α] (e : α ≃ β) : Countable β 
goal: Countable β

full_name: Equiv.countable_iff
code: theorem Equiv.countable_iff (e : α ≃ β) : Countable α ↔ Countable β 
goal: Countable α ↔ Countable β

full_name: instCountableULift
code: instance {β : Type v} [Countable β] : Countable (ULift.{u} β) 
goal: Countable (ULift.{u, v} β)

full_name: instCountablePLift
code: instance [Countable α] : Countable (PLift α) 
goal: Countable (PLift α)

full_name: Subsingleton.to_countable
code: instance (priority := 100) Subsingleton.to_countable [Subsingleton α] : Countable α 
goal: Countable α

full_name: Subtype.countable
code: instance (priority := 500) Subtype.countable [Countable α] {p : α → Prop} :
    Countable { x // p x } 
goal: Countable { x // p x }

full_name: instCountableFin
code: instance {n : ℕ} : Countable (Fin n) 
goal: Countable (Fin n)

full_name: Finite.to_countable
code: instance (priority := 100) Finite.to_countable [Finite α] : Countable α 
goal: Countable α

full_name: instCountablePUnit
code: instance : Countable PUnit.{u} 
goal: Countable PUnit.{u}

full_name: Prop.countable
code: instance (priority := 100) Prop.countable (p : Prop) : Countable p 
goal: Countable p

full_name: Bool.countable
code: instance Bool.countable : Countable Bool 
goal: Countable Bool

full_name: Prop.countable'
code: instance Prop.countable' : Countable Prop 
goal: Countable Prop

full_name: Quotient.countable
code: instance (priority := 500) Quotient.countable [Countable α] {r : α → α → Prop} :
    Countable (Quot r) 
goal: Countable (Quot r)

full_name: instCountableQuotient
code: instance (priority := 500) [Countable α] {s : Setoid α} : Countable (Quotient s) 
goal: Countable (Quotient s)

full_name: Uncountable.not_countable
code: /-- A type `α` is uncountable if it is not countable. -/
@[mk_iff uncountable_iff_not_countable]
class Uncountable (α : Sort*) : Prop where
  /-- A type `α` is uncountable if it is not countable. -/
  not_countable : ¬Countable α
goal: ¬Countable α

full_name: uncountable_iff_not_countable
code: /-- A type `α` is uncountable if it is not countable. -/
@[mk_iff uncountable_iff_not_countable]
class Uncountable (α : Sort*) : Prop where
  /-- A type `α` is uncountable if it is not countable. -/
  not_countable : ¬Countable α
goal: Uncountable α ↔ ¬Countable α

full_name: Uncountable
code: /-- A type `α` is uncountable if it is not countable. -/
@[mk_iff uncountable_iff_not_countable]
class Uncountable (α : Sort*) : Prop where
  /-- A type `α` is uncountable if it is not countable. -/
  not_countable : ¬Countable α
goal: Prop

full_name: not_uncountable_iff
code: lemma not_uncountable_iff : ¬Uncountable α ↔ Countable α 
goal: ¬Uncountable α ↔ Countable α

full_name: not_countable_iff
code: lemma not_countable_iff : ¬Countable α ↔ Uncountable α 
goal: ¬Countable α ↔ Uncountable α

full_name: not_uncountable
code: @[simp]
lemma not_uncountable [Countable α] : ¬Uncountable α 
goal: ¬Uncountable α

full_name: not_countable
code: @[simp]
lemma not_countable [Uncountable α] : ¬Countable α 
goal: ¬Countable α

full_name: Function.Injective.uncountable
code: protected theorem Function.Injective.uncountable [Uncountable α] {f : α → β} (hf : Injective f) :
    Uncountable β 
goal: Uncountable β

full_name: Function.Surjective.uncountable
code: protected theorem Function.Surjective.uncountable [Uncountable β] {f : α → β} (hf : Surjective f) :
    Uncountable α 
goal: Uncountable α

full_name: not_injective_uncountable_countable
code: lemma not_injective_uncountable_countable [Uncountable α] [Countable β] (f : α → β) :
    ¬Injective f 
goal: ¬Function.Injective f

full_name: not_surjective_countable_uncountable
code: lemma not_surjective_countable_uncountable [Countable α] [Uncountable β] (f : α → β) :
    ¬Surjective f 
goal: ¬Function.Surjective f

full_name: uncountable_iff_forall_not_surjective
code: theorem uncountable_iff_forall_not_surjective [Nonempty α] :
    Uncountable α ↔ ∀ f : ℕ → α, ¬Surjective f 
goal: Uncountable α ↔ ∀ (f : ℕ → α), ¬Function.Surjective f

full_name: Uncountable.of_equiv
code: theorem Uncountable.of_equiv (α : Sort*) [Uncountable α] (e : α ≃ β) : Uncountable β 
goal: Uncountable β

full_name: Equiv.uncountable_iff
code: theorem Equiv.uncountable_iff (e : α ≃ β) : Uncountable α ↔ Uncountable β 
goal: Uncountable α ↔ Uncountable β

full_name: instUncountableULift
code: instance {β : Type v} [Uncountable β] : Uncountable (ULift.{u} β) 
goal: Uncountable (ULift.{u, v} β)

full_name: instUncountablePLift
code: instance [Uncountable α] : Uncountable (PLift α) 
goal: Uncountable (PLift α)

full_name: instInfiniteOfUncountable
code: instance (priority := 100) [Uncountable α] : Infinite α 
goal: Infinite α