1-Types
module foundation-core.1-types where
Imports
open import foundation-core.dependent-pair-types open import foundation-core.equivalences open import foundation-core.identity-types open import foundation-core.sets open import foundation-core.truncated-types open import foundation-core.truncation-levels open import foundation-core.universe-levels
Definition
A 1-type is a type that is 1-truncated.
is-1-type : {l : Level} → UU l → UU l is-1-type = is-trunc one-𝕋 1-Type : (l : Level) → UU (lsuc l) 1-Type l = Σ (UU l) is-1-type type-1-Type : {l : Level} → 1-Type l → UU l type-1-Type = pr1 abstract is-1-type-type-1-Type : {l : Level} (A : 1-Type l) → is-1-type (type-1-Type A) is-1-type-type-1-Type = pr2
Properties
The identity type of a 1-type takes values in sets
Id-Set : {l : Level} (X : 1-Type l) (x y : type-1-Type X) → Set l pr1 (Id-Set X x y) = (x = y) pr2 (Id-Set X x y) = is-1-type-type-1-Type X x y
Any set is a 1-type
1-type-Set : {l : Level} → Set l → 1-Type l 1-type-Set A = truncated-type-succ-Truncated-Type zero-𝕋 A
The 1-types are closed under equivalences
abstract is-1-type-is-equiv : {l1 l2 : Level} {A : UU l1} (B : UU l2) (f : A → B) → is-equiv f → is-1-type B → is-1-type A is-1-type-is-equiv = is-trunc-is-equiv one-𝕋 abstract is-1-type-equiv : {l1 l2 : Level} {A : UU l1} (B : UU l2) (e : A ≃ B) → is-1-type B → is-1-type A is-1-type-equiv = is-trunc-equiv one-𝕋 abstract is-1-type-is-equiv' : {l1 l2 : Level} (A : UU l1) {B : UU l2} (f : A → B) → is-equiv f → is-1-type A → is-1-type B is-1-type-is-equiv' = is-trunc-is-equiv' one-𝕋 abstract is-1-type-equiv' : {l1 l2 : Level} (A : UU l1) {B : UU l2} (e : A ≃ B) → is-1-type A → is-1-type B is-1-type-equiv' = is-trunc-equiv' one-𝕋