HepLean Documentation

Mathlib.Logic.Small.Basic

Instances and theorems for Small. #

In particular we prove small_of_injective and small_of_surjective.

instance small_subtype (α : Type v) [Small.{w, v} α] (P : αProp) :
Small.{w, v} { x : α // P x }
Equations
  • =
theorem small_of_injective {α : Type v} {β : Type w} [Small.{u, w} β] {f : αβ} (hf : Function.Injective f) :
theorem small_of_surjective {α : Type v} {β : Type w} [Small.{u, v} α] {f : αβ} (hf : Function.Surjective f) :
@[instance 100]
Equations
  • =
theorem small_of_injective_of_exists {α : Type v} {β : Type w} {γ : Type v'} [Small.{u, v} α] (f : αγ) {g : βγ} (hg : Function.Injective g) (h : ∀ (b : β), ∃ (a : α), f a = g b) :

This can be seen as a version of small_of_surjective in which the function f doesn't actually land in β but in some larger type γ related to β via an injective function g.

We don't define Countable.toSmall in this file, to keep imports to Logic to a minimum.

instance small_Pi {α : Type u_2} (β : αType u_1) [Small.{w, u_2} α] [∀ (a : α), Small.{w, u_1} (β a)] :
Small.{w, max u_1 u_2} ((a : α) → β a)
Equations
  • =
instance small_prod {α : Type u_1} {β : Type u_2} [Small.{w, u_1} α] [Small.{w, u_2} β] :
Equations
  • =
instance small_sum {α : Type u_1} {β : Type u_2} [Small.{w, u_1} α] [Small.{w, u_2} β] :
Equations
  • =
instance small_set {α : Type u_1} [Small.{w, u_1} α] :
Equations
  • =