Documentation

Mathlib.Logic.Small.Defs

Small types #

A type is w-small if there exists an equivalence to some S : Type w.

We provide a noncomputable model Shrink α : Type w, and equivShrink α : α ≃ Shrink α.

A subsingleton type is w-small for any w.

If α ≃ β, then Small.{w} α ↔ Small.{w} β.

See Mathlib.Logic.Small.Basic for further instances and theorems.

theorem small_iff (α : Type v) :
theorem Small.mk' {α : Type v} {S : Type w} (e : α S) :

Constructor for Small α from an explicit witness type and equivalence.

def Shrink (α : Type v) [Small.{w, v} α] :

An arbitrarily chosen model in Type w for a w-small type.

Equations
Instances For
noncomputable def equivShrink (α : Type v) [Small.{w, v} α] :

The noncomputable equivalence between a w-small type and a model.

Equations
theorem Shrink.ext {α : Type v} [Small.{w, v} α] {x y : Shrink.{w, v} α} (w : (equivShrink α).symm x = (equivShrink α).symm y) :
x = y
noncomputable def Shrink.rec {α : Type u_1} [Small.{w, u_1} α] {F : Shrink.{w, u_1} αSort v} (h : (X : α) → F ((equivShrink α) X)) (X : Shrink.{w, u_1} α) :
F X
Equations
instance small_self (α : Type v) :
theorem small_map {α : Type u_1} {β : Type u_2} [ : Small.{w, u_2} β] (e : α β) :
theorem small_lift (α : Type u) [ : Small.{v, u} α] :
theorem small_max (α : Type v) :

Due to https://github.com/leanprover/lean4/issues/2297, this is useless as an instance.

See however Logic.UnivLE, whose API is able to indirectly provide this instance.

instance small_zero (α : Type) :
@[instance 100]
instance small_succ (α : Type v) :
theorem small_congr {α : Type u_1} {β : Type u_2} (e : α β) :
instance small_sigma {α : 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)