Finite discrete Σ-Decompositions

module univalent-combinatorics.discrete-sigma-decompositions where
Imports
open import foundation.discrete-sigma-decompositions public

open import foundation.contractible-types
open import foundation.dependent-pair-types
open import foundation.identity-types
open import foundation.propositions
open import foundation.subtypes
open import foundation.universe-levels

open import univalent-combinatorics.finite-types
open import univalent-combinatorics.sigma-decompositions

Definitions

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

  discrete-Σ-Decomposition-𝔽 :
    Σ-Decomposition-𝔽 l1 l2 A
  discrete-Σ-Decomposition-𝔽 =
    map-Σ-Decomposition-𝔽-subtype-is-finite
      ( A)
      ( ( discrete-Σ-Decomposition l2 (type-𝔽 A)) ,
        ( is-finite-type-𝔽 A ,
          λ x  is-finite-raise-unit))

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

  is-discrete-Prop-Σ-Decomposition-𝔽 :
    Prop (l2  l3)
  is-discrete-Prop-Σ-Decomposition-𝔽 =
    Π-Prop
      ( indexing-type-Σ-Decomposition-𝔽 A D)
      ( λ x  is-contr-Prop (cotype-Σ-Decomposition-𝔽 A D x))

  is-discrete-Σ-Decomposition-𝔽 :
    UU (l2  l3)
  is-discrete-Σ-Decomposition-𝔽 =
    type-Prop is-discrete-Prop-Σ-Decomposition-𝔽

is-discrete-discrete-Σ-Decomposition-𝔽 :
  {l1 l2 : Level} (A : 𝔽 l1) 
  is-discrete-Σ-Decomposition-𝔽
    ( A)
    ( discrete-Σ-Decomposition-𝔽 l2 A)
is-discrete-discrete-Σ-Decomposition-𝔽 _ =
  is-discrete-discrete-Σ-Decomposition

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

Propositions

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

  equiv-discrete-is-discrete-Σ-Decomposition-𝔽 :
    equiv-Σ-Decomposition-𝔽
      ( A)
      ( D)
      ( discrete-Σ-Decomposition-𝔽
        ( l4)
        ( A))
  equiv-discrete-is-discrete-Σ-Decomposition-𝔽 =
    equiv-discrete-is-discrete-Σ-Decomposition
      ( Σ-Decomposition-Σ-Decomposition-𝔽 A D)
      ( is-discrete)

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