Truncated types
Content created by Egbert Rijke, Fredrik Bakke, Jonathan Prieto-Cubides, Daniel Gratzer and Elisabeth Stenholm.
Created on 2022-01-26.
Last modified on 2024-04-11.
module foundation.truncated-types where open import foundation-core.truncated-types public
Imports
open import elementary-number-theory.natural-numbers open import foundation.dependent-pair-types open import foundation.equivalences open import foundation.logical-equivalences open import foundation.subtype-identity-principle open import foundation.truncation-levels open import foundation.univalence open import foundation.universe-levels open import foundation-core.embeddings open import foundation-core.identity-types open import foundation-core.propositions open import foundation-core.subtypes open import foundation-core.torsorial-type-families
Definition
The subuniverse of truncated types is itself truncated
is-torsorial-equiv-Truncated-Type : {l : Level} {k : 𝕋} (A : Truncated-Type l k) → is-torsorial (type-equiv-Truncated-Type A) is-torsorial-equiv-Truncated-Type A = is-torsorial-Eq-subtype ( is-torsorial-equiv (type-Truncated-Type A)) ( is-prop-is-trunc _) ( type-Truncated-Type A) ( id-equiv) ( is-trunc-type-Truncated-Type A) extensionality-Truncated-Type : {l : Level} {k : 𝕋} (A B : Truncated-Type l k) → (A = B) ≃ type-equiv-Truncated-Type A B extensionality-Truncated-Type A = extensionality-type-subtype ( is-trunc-Prop _) ( is-trunc-type-Truncated-Type A) ( id-equiv) ( λ X → equiv-univalence) abstract is-trunc-Truncated-Type : {l : Level} (k : 𝕋) → is-trunc (succ-𝕋 k) (Truncated-Type l k) is-trunc-Truncated-Type k X Y = is-trunc-equiv k ( type-equiv-Truncated-Type X Y) ( extensionality-Truncated-Type X Y) ( is-trunc-type-equiv-Truncated-Type X Y) Truncated-Type-Truncated-Type : (l : Level) (k : 𝕋) → Truncated-Type (lsuc l) (succ-𝕋 k) pr1 (Truncated-Type-Truncated-Type l k) = Truncated-Type l k pr2 (Truncated-Type-Truncated-Type l k) = is-trunc-Truncated-Type k
The embedding of the subuniverse of truncated types into the universe
emb-type-Truncated-Type : (l : Level) (k : 𝕋) → Truncated-Type l k ↪ UU l emb-type-Truncated-Type l k = emb-subtype (is-trunc-Prop k)
If a type is k
-truncated, then it is k+r
-truncated
abstract is-trunc-iterated-succ-is-trunc : (k : 𝕋) (r : ℕ) {l : Level} {A : UU l} → is-trunc k A → is-trunc (iterated-succ-𝕋' k r) A is-trunc-iterated-succ-is-trunc k zero-ℕ is-trunc-A = is-trunc-A is-trunc-iterated-succ-is-trunc k (succ-ℕ r) is-trunc-A = is-trunc-iterated-succ-is-trunc (succ-𝕋 k) r ( is-trunc-succ-is-trunc k is-trunc-A) truncated-type-iterated-succ-Truncated-Type : (k : 𝕋) (r : ℕ) {l : Level} → Truncated-Type l k → Truncated-Type l (iterated-succ-𝕋' k r) pr1 (truncated-type-iterated-succ-Truncated-Type k r A) = type-Truncated-Type A pr2 (truncated-type-iterated-succ-Truncated-Type k r A) = is-trunc-iterated-succ-is-trunc k r (is-trunc-type-Truncated-Type A)
Two equivalent types are equivalently k
-truncated
module _ {l1 l2 : Level} (k : 𝕋) {A : UU l1} {B : UU l2} where equiv-is-trunc-equiv : A ≃ B → is-trunc k A ≃ is-trunc k B equiv-is-trunc-equiv e = equiv-iff-is-prop ( is-prop-is-trunc k A) ( is-prop-is-trunc k B) ( is-trunc-equiv' k A e) ( is-trunc-equiv k B e)
If the domain or codomain is k+1
-truncated, then the type of equivalences is k+1
-truncated
module _ {l1 l2 : Level} (k : 𝕋) {A : UU l1} {B : UU l2} where is-trunc-equiv-is-trunc-codomain : is-trunc (succ-𝕋 k) B → is-trunc (succ-𝕋 k) (A ≃ B) is-trunc-equiv-is-trunc-codomain is-trunc-B = is-trunc-type-subtype ( k) ( is-equiv-Prop) ( is-trunc-function-type (succ-𝕋 k) is-trunc-B) module _ {l1 l2 : Level} (k : 𝕋) {A : UU l1} {B : UU l2} where is-trunc-equiv-is-trunc-domain : is-trunc (succ-𝕋 k) A → is-trunc (succ-𝕋 k) (A ≃ B) is-trunc-equiv-is-trunc-domain is-trunc-A = is-trunc-equiv ( succ-𝕋 k) ( B ≃ A) ( equiv-inv-equiv) ( is-trunc-equiv-is-trunc-codomain k is-trunc-A)
Recent changes
- 2024-04-11. Fredrik Bakke and Egbert Rijke. Propositional operations (#1008).
- 2024-01-31. Fredrik Bakke and Egbert Rijke. Transport-split and preunivalent type families (#1013).
- 2023-12-21. Fredrik Bakke. Action on homotopies of functions (#973).
- 2023-11-27. Elisabeth Stenholm, Daniel Gratzer and Egbert Rijke. Additions during work on material set theory in HoTT (#910).
- 2023-11-01. Fredrik Bakke. Opposite categories, gaunt categories, replete subprecategories, large Yoneda, and miscellaneous additions (#880).