Raising universe levels for the unit type
Content created by Egbert Rijke and Fredrik Bakke.
Created on 2026-05-02.
Last modified on 2026-05-02.
module foundation.raising-universe-levels-unit-type where
Imports
open import foundation.action-on-identifications-functions open import foundation.dependent-pair-types open import foundation.equivalences-contractible-types open import foundation.unit-type open import foundation.universe-levels open import foundation-core.constant-maps open import foundation-core.contractible-types open import foundation-core.equivalences open import foundation-core.identity-types open import foundation-core.propositions open import foundation-core.raising-universe-levels open import foundation-core.retractions open import foundation-core.sets open import foundation-core.truncated-types open import foundation-core.truncation-levels
Idea
We can raise the type of booleans to any universe.
Definition
Raising the universe level of the unit type
raise-unit : (l : Level) → UU l raise-unit l = raise l unit raise-star : {l : Level} → raise l unit raise-star = map-raise star raise-terminal-map : {l1 l2 : Level} (A : UU l1) → A → raise-unit l2 raise-terminal-map {l2 = l2} A = const A raise-star compute-raise-unit : (l : Level) → unit ≃ raise-unit l compute-raise-unit l = compute-raise l unit inv-compute-raise-unit : (l : Level) → raise-unit l ≃ unit inv-compute-raise-unit l = inv-compute-raise l unit
Properties
The raised unit type is contractible
abstract is-contr-raise-unit : {l1 : Level} → is-contr (raise-unit l1) is-contr-raise-unit {l1} = is-contr-equiv' unit (compute-raise l1 unit) is-contr-unit
Any contractible type is equivalent to the raised unit type
module _ {l1 l2 : Level} {A : UU l1} where is-equiv-raise-terminal-map-is-contr : is-contr A → is-equiv (raise-terminal-map {l2 = l2} A) is-equiv-raise-terminal-map-is-contr H = is-equiv-is-invertible ( λ _ → center H) ( λ where (map-raise x) → refl) ( contraction H) equiv-raise-unit-is-contr : is-contr A → A ≃ raise-unit l2 equiv-raise-unit-is-contr H = raise-terminal-map A , is-equiv-raise-terminal-map-is-contr H is-contr-retraction-raise-terminal-map : retraction (raise-terminal-map {l2 = l2} A) → is-contr A is-contr-retraction-raise-terminal-map (h , H) = h raise-star , H is-contr-is-equiv-raise-terminal-map : is-equiv (raise-terminal-map {l2 = l2} A) → is-contr A is-contr-is-equiv-raise-terminal-map H = is-contr-retraction-raise-terminal-map (retraction-is-equiv H) is-contr-equiv-raise-unit : A ≃ raise-unit l2 → is-contr A is-contr-equiv-raise-unit e = ( map-inv-equiv e raise-star) , ( λ x → ap (map-inv-equiv e) (eq-is-contr is-contr-raise-unit) ∙ is-retraction-map-inv-equiv e x)
The raised unit type is a proposition
abstract is-prop-raise-unit : {l1 : Level} → is-prop (raise-unit l1) is-prop-raise-unit {l1} = is-prop-equiv' (compute-raise l1 unit) is-prop-unit raise-unit-Prop : (l1 : Level) → Prop l1 raise-unit-Prop l1 = raise-unit l1 , is-prop-raise-unit
The raised unit type is a set
abstract is-set-raise-unit : {l1 : Level} → is-set (raise-unit l1) is-set-raise-unit = is-trunc-succ-is-trunc neg-one-𝕋 is-prop-raise-unit raise-unit-Set : (l1 : Level) → Set l1 raise-unit-Set l1 = raise-unit l1 , is-set-raise-unit
Recent changes
- 2026-05-02. Fredrik Bakke and Egbert Rijke. Remove dependency between
BUILTINand postulates (#1373).