Trivial Σ-Decompositions

module foundation.trivial-sigma-decompositions where
Imports
open import foundation.contractible-types
open import foundation.equivalences
open import foundation.functoriality-propositional-truncation
open import foundation.inhabited-types
open import foundation.sigma-decompositions
open import foundation.type-arithmetic-empty-type
open import foundation.unit-type

open import foundation-core.dependent-pair-types
open import foundation-core.empty-types
open import foundation-core.equality-dependent-pair-types
open import foundation-core.functions
open import foundation-core.identity-types
open import foundation-core.propositions
open import foundation-core.subtypes
open import foundation-core.type-arithmetic-dependent-pair-types
open import foundation-core.universe-levels

Definitions

module _
  {l1 : Level} (l2 : Level) (A : UU l1)
  where

  trivial-inhabited-Σ-Decomposition :
    (p : is-inhabited A)  Σ-Decomposition l2 l1 A
  pr1 (trivial-inhabited-Σ-Decomposition p) = raise-unit l2
  pr1 (pr2 (trivial-inhabited-Σ-Decomposition p)) = λ _  (A , p)
  pr2 (pr2 (trivial-inhabited-Σ-Decomposition p)) =
    inv-left-unit-law-Σ-is-contr
      ( is-contr-raise-unit)
      ( raise-star)

  trivial-empty-Σ-Decomposition :
    (p : is-empty A)  Σ-Decomposition lzero lzero A
  pr1 (trivial-empty-Σ-Decomposition p) = empty
  pr1 (pr2 (trivial-empty-Σ-Decomposition p)) = ex-falso
  pr2 (pr2 (trivial-empty-Σ-Decomposition p)) =
    equiv-is-empty
      ( p)
      ( map-left-absorption-Σ _)

module _
  {l1 l2 l3 : Level} {A : UU l1}
  (D : Σ-Decomposition l2 l3 A)
  where

  is-trivial-Prop-Σ-Decomposition : Prop l2
  is-trivial-Prop-Σ-Decomposition =
    is-contr-Prop (indexing-type-Σ-Decomposition D)

  is-trivial-Σ-Decomposition : UU l2
  is-trivial-Σ-Decomposition = type-Prop is-trivial-Prop-Σ-Decomposition

is-trivial-trivial-inhabited-Σ-Decomposition :
  {l1 l2 : Level} {A : UU l1} (p : is-inhabited A)→
  is-trivial-Σ-Decomposition (trivial-inhabited-Σ-Decomposition l2 A p)
is-trivial-trivial-inhabited-Σ-Decomposition p = is-contr-raise-unit

type-trivial-Σ-Decomposition :
  {l1 l2 l3 : Level} {A : UU l1}  UU (l1  lsuc l2  lsuc l3)
type-trivial-Σ-Decomposition {l1} {l2} {l3} {A}=
  type-subtype (is-trivial-Prop-Σ-Decomposition {l1} {l2} {l3} {A})

Propositions

module _
  {l1 l2 l3 l4 : Level} {A : UU l1}
  (D : Σ-Decomposition l2 l3 A)
  ( is-trivial : is-trivial-Σ-Decomposition D)
  where

  is-inhabited-base-type-is-trivial-Σ-Decomposition :
    is-inhabited A
  is-inhabited-base-type-is-trivial-Σ-Decomposition =
    map-equiv-trunc-Prop
      ( inv-equiv (matching-correspondence-Σ-Decomposition D) ∘e
        inv-left-unit-law-Σ-is-contr is-trivial ( center is-trivial))
      ( is-inhabited-cotype-Σ-Decomposition D ( center is-trivial))

  equiv-trivial-is-trivial-Σ-Decomposition :
    equiv-Σ-Decomposition D
      ( trivial-inhabited-Σ-Decomposition
        ( l4)
        ( A)
        ( is-inhabited-base-type-is-trivial-Σ-Decomposition))
  pr1 equiv-trivial-is-trivial-Σ-Decomposition =
    ( map-equiv (compute-raise-unit l4)  terminal-map ,
      is-equiv-comp
        ( map-equiv (compute-raise-unit l4))
        ( terminal-map)
        ( is-equiv-terminal-map-is-contr is-trivial)
        ( is-equiv-map-equiv ( compute-raise-unit l4)))
  pr1 (pr2 equiv-trivial-is-trivial-Σ-Decomposition) =
    ( λ x 
      ( ( inv-equiv (matching-correspondence-Σ-Decomposition D)) ∘e
        ( inv-left-unit-law-Σ-is-contr is-trivial x)))
  pr2 (pr2 equiv-trivial-is-trivial-Σ-Decomposition) a =
    eq-pair-Σ
      ( refl)
      ( inv-map-eq-transpose-equiv
        ( inv-equiv (matching-correspondence-Σ-Decomposition D))
        ( refl))

is-contr-type-trivial-Σ-Decomposition :
  {l1 l2 : Level} {A : UU l1} 
  (p : is-inhabited A) 
  is-contr (type-trivial-Σ-Decomposition {l1} {l2} {l1} {A})
pr1 ( is-contr-type-trivial-Σ-Decomposition {l1} {l2} {A} p) =
  ( trivial-inhabited-Σ-Decomposition l2 A p ,
    is-trivial-trivial-inhabited-Σ-Decomposition p)
pr2 ( is-contr-type-trivial-Σ-Decomposition {l1} {l2} {A} p) =
   ( λ x 
     eq-type-subtype
       ( is-trivial-Prop-Σ-Decomposition)
       ( inv
         ( eq-equiv-Σ-Decomposition
           ( pr1 x)
           ( trivial-inhabited-Σ-Decomposition l2 A p)
           ( equiv-trivial-is-trivial-Σ-Decomposition (pr1 x) (pr2 x)))))