Instances and theorems for Small
. #
In particular we prove small_of_injective
and small_of_surjective
.
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)
:
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)
instance
small_prod
{α : Type u_1}
{β : Type u_2}
[Small.{w, u_1} α]
[Small.{w, u_2} β]
:
Small.{w, max u_2 u_1} (α × β)
instance
small_sum
{α : Type u_1}
{β : Type u_2}
[Small.{w, u_1} α]
[Small.{w, u_2} β]
:
Small.{w, max u_2 u_1} (α ⊕ β)