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.lean for further instances and theorems.
An arbitrarily chosen model in Type w for a w-small type.
Equations
Instances For
The noncomputable equivalence between a w-small type and a model.
Equations
- equivShrink α = ⋯.some
Instances For
theorem Shrink.ext {α : Type v} [Small.{w, v} α] {x y : Shrink.{w, v} α} (w : (equivShrink α).symm x = (equivShrink α).symm 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
- Shrink.rec h X = ⋯ ▸ h ((equivShrink α).symm X)
Instances For
@[simp]
theorem Shrink.rec_equivShrink {α : Type u_1} [Small.{w, u_1} α] {F : Shrink.{w, u_1} α → Sort v} {f : (a : α) → F ((equivShrink α) a)} (a : α) :
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_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)