Full subuniverses
Content created by Fredrik Bakke.
Created on 2026-03-06.
Last modified on 2026-03-06.
module foundation.full-subuniverses where
Imports
open import foundation.dependent-pair-types open import foundation.full-subtypes open import foundation.subuniverses open import foundation.universe-levels open import foundation-core.equivalences open import foundation-core.propositions
Idea
The full subuniverse¶ of a universe contains every type.
Definitions
Full subuniverses
module _ {l1 l2 : Level} (P : subuniverse l1 l2) where is-full-subuniverse-Prop : Prop (lsuc l1 ⊔ l2) is-full-subuniverse-Prop = is-full-subtype-Prop P is-full-subuniverse : UU (lsuc l1 ⊔ l2) is-full-subuniverse = is-full-subtype P is-prop-is-full-subuniverse : is-prop is-full-subuniverse is-prop-is-full-subuniverse = is-prop-is-full-subtype P
The full subuniverse at universe levels
full-subuniverse : (l1 l2 : Level) → subuniverse l1 l2 full-subuniverse l1 l2 = full-subtype l2 (UU l1) type-full-subuniverse : (l1 l2 : Level) → UU (lsuc l1 ⊔ l2) type-full-subuniverse l1 l2 = type-subuniverse (full-subuniverse l1 l2) module _ {l1 l2 : Level} where is-in-full-subuniverse : (X : UU l1) → is-in-subuniverse (full-subuniverse l1 l2) X is-in-full-subuniverse = is-in-full-subtype {l1 = lsuc l1} {l2 = l2} {A = UU l1} inclusion-full-subuniverse : type-full-subuniverse l1 l2 → UU l1 inclusion-full-subuniverse = inclusion-subuniverse (full-subuniverse l1 l2) is-equiv-inclusion-full-subuniverse : is-equiv inclusion-full-subuniverse is-equiv-inclusion-full-subuniverse = is-equiv-inclusion-full-subtype {l1 = lsuc l1} {l2 = l2} {A = UU l1} equiv-inclusion-full-subuniverse : type-full-subuniverse l1 l2 ≃ UU l1 equiv-inclusion-full-subuniverse = inclusion-full-subuniverse , is-equiv-inclusion-full-subuniverse inv-equiv-inclusion-full-subuniverse : UU l1 ≃ type-full-subuniverse l1 l2 inv-equiv-inclusion-full-subuniverse = inv-equiv equiv-inclusion-full-subuniverse
Properties
A subuniverse is full if and only if the inclusion is an equivalence
module _ {l1 l2 : Level} (P : subuniverse l1 l2) where is-equiv-inclusion-is-full-subuniverse : is-full-subuniverse P → is-equiv (inclusion-subuniverse P) is-equiv-inclusion-is-full-subuniverse = is-equiv-inclusion-is-full-subtype P equiv-inclusion-is-full-subuniverse : is-full-subuniverse P → type-subuniverse P ≃ UU l1 pr1 (equiv-inclusion-is-full-subuniverse H) = inclusion-subuniverse P pr2 (equiv-inclusion-is-full-subuniverse H) = is-equiv-inclusion-is-full-subuniverse H inv-equiv-inclusion-is-full-subuniverse : is-full-subuniverse P → UU l1 ≃ type-subuniverse P inv-equiv-inclusion-is-full-subuniverse H = inv-equiv (equiv-inclusion-is-full-subuniverse H) is-full-is-equiv-inclusion-subuniverse : is-equiv (inclusion-subuniverse P) → is-full-subuniverse P is-full-is-equiv-inclusion-subuniverse = is-full-is-equiv-inclusion-subtype P
Recent changes
- 2026-03-06. Fredrik Bakke. The parametricity axiom (#1642).