# Subtype duality ```agda module foundation.subtype-duality where ``` <details><summary>Imports</summary> ```agda open import foundation.dependent-pair-types open import foundation.inhabited-types open import foundation.propositional-maps open import foundation.structured-type-duality open import foundation.surjective-maps open import foundation.universe-levels open import foundation-core.embeddings open import foundation-core.equivalences open import foundation-core.functoriality-dependent-pair-types open import foundation-core.propositions ``` </details> ## Theorem ### Subtype duality ```agda Slice-emb : (l : Level) {l1 : Level} (A : UU l1) → UU (lsuc l ⊔ l1) Slice-emb l A = Σ (UU l) (λ X → X ↪ A) equiv-Fiber-Prop : (l : Level) {l1 : Level} (A : UU l1) → Slice-emb (l1 ⊔ l) A ≃ (A → Prop (l1 ⊔ l)) equiv-Fiber-Prop l A = ( equiv-Fiber-structure l is-prop A) ∘e ( equiv-tot (λ X → equiv-tot equiv-is-prop-map-is-emb)) Slice-surjection : (l : Level) {l1 : Level} (A : UU l1) → UU (lsuc l ⊔ l1) Slice-surjection l A = Σ (UU l) (λ X → X ↠ A) equiv-Fiber-trunc-Prop : (l : Level) {l1 : Level} (A : UU l1) → Slice-surjection (l1 ⊔ l) A ≃ (A → Inhabited-Type (l1 ⊔ l)) equiv-Fiber-trunc-Prop l A = ( equiv-Fiber-structure l is-inhabited A) ```