Suspensions of propositions

Content created by Fredrik Bakke.

Created on 2025-01-07.
Last modified on 2025-01-07.

module synthetic-homotopy-theory.suspensions-of-propositions where
Imports
open import foundation.booleans
open import foundation.contractible-types
open import foundation.dependent-pair-types
open import foundation.equivalences
open import foundation.existential-quantification
open import foundation.function-extensionality
open import foundation.function-types
open import foundation.fundamental-theorem-of-identity-types
open import foundation.homotopies
open import foundation.identity-types
open import foundation.propositions
open import foundation.sets
open import foundation.subsingleton-induction
open import foundation.surjective-maps
open import foundation.torsorial-type-families
open import foundation.transport-along-identifications
open import foundation.unit-type
open import foundation.univalence
open import foundation.universe-levels

open import synthetic-homotopy-theory.dependent-suspension-structures
open import synthetic-homotopy-theory.suspension-structures
open import synthetic-homotopy-theory.suspensions-of-types

open import univalent-combinatorics.kuratowski-finite-sets

Idea

The suspension of a proposition P is the set satisfying the universal property of the pushout of the span

  1 <--- P ---> 1.

Definitions

The suspension of a proposition

module _
  {l : Level} (P : Prop l)
  where

  suspension-Prop : UU l
  suspension-Prop = suspension (type-Prop P)

Suspensions of propositions are sets

We characterize equality in the suspension of a proposition P by the following four equations

  (N = N) ≃ 1
  (N = S) ≃ P
  (S = N) ≃ P
  (S = S) ≃ 1.

Since these are all propositions, ΣP forms a set. This is Lemma 10.1.13 in [UF13].

First we define the observational equality family on ΣP.

module _
  {l : Level} (P : Prop l)
  where

  suspension-structure-Eq-north-suspension-Prop :
    suspension-structure (type-Prop P) (UU l)
  suspension-structure-Eq-north-suspension-Prop =
    ( raise-unit l) ,
    ( type-Prop P) ,
    ( λ x 
      inv
        ( eq-equiv
          ( equiv-raise-unit-is-contr (is-proof-irrelevant-type-Prop P x))))

  Eq-north-suspension-Prop :
    suspension (type-Prop P)  UU l
  Eq-north-suspension-Prop =
    cogap-suspension suspension-structure-Eq-north-suspension-Prop

  suspension-structure-Eq-south-suspension-Prop :
    suspension-structure (type-Prop P) (UU l)
  suspension-structure-Eq-south-suspension-Prop =
    ( type-Prop P) ,
    ( raise-unit l) ,
    ( λ x 
      eq-equiv (equiv-raise-unit-is-contr (is-proof-irrelevant-type-Prop P x)))

  Eq-south-suspension-Prop :
    suspension (type-Prop P)  UU l
  Eq-south-suspension-Prop =
    cogap-suspension suspension-structure-Eq-south-suspension-Prop

  abstract
    coh-Eq-suspension-Prop :
      type-Prop P  Eq-north-suspension-Prop ~ Eq-south-suspension-Prop
    coh-Eq-suspension-Prop x =
      dependent-cogap-suspension
        ( eq-value
          ( Eq-north-suspension-Prop)
          ( Eq-south-suspension-Prop))
        ( ( ( compute-north-cogap-suspension
              ( suspension-structure-Eq-north-suspension-Prop)) 
            ( inv
              ( eq-equiv
                ( equiv-raise-unit-is-contr
                  ( is-proof-irrelevant-type-Prop P x)))) 
            ( inv
              ( compute-north-cogap-suspension
                ( suspension-structure-Eq-south-suspension-Prop)))) ,
          ( ( compute-south-cogap-suspension
              ( suspension-structure-Eq-north-suspension-Prop)) 
            ( eq-equiv
              ( equiv-raise-unit-is-contr
                ( is-proof-irrelevant-type-Prop P x))) 
            ( inv
              ( compute-south-cogap-suspension
                ( suspension-structure-Eq-south-suspension-Prop)))) ,
          ind-subsingleton
            ( is-prop-type-Prop P)
            ( x)
            ( eq-is-contr
              ( is-contr-equiv
                ( type-Prop P  raise-unit l)
                ( equiv-univalence ∘e
                  equiv-binary-concat
                    ( inv
                      ( compute-south-cogap-suspension
                        ( suspension-structure-Eq-north-suspension-Prop)))
                    ( compute-south-cogap-suspension
                      ( suspension-structure-Eq-south-suspension-Prop)))
                ( is-contr-equiv-is-contr
                  ( is-proof-irrelevant-type-Prop P x)
                  ( is-contr-raise-unit)))))

  suspension-structure-Eq-suspension-Prop :
    suspension-structure (type-Prop P) (suspension-Prop P  UU l)
  suspension-structure-Eq-suspension-Prop =
      ( Eq-north-suspension-Prop ,
        Eq-south-suspension-Prop ,
        eq-htpy  coh-Eq-suspension-Prop)

  Eq-suspension-Prop :
    suspension-Prop P  suspension-Prop P  UU l
  Eq-suspension-Prop =
    cogap-suspension suspension-structure-Eq-suspension-Prop

We compute the observational equality of the suspension of a proposition at the poles.

  eq-compute-Eq-north-north-suspension-Prop :
    Eq-suspension-Prop north-suspension north-suspension  raise-unit l
  eq-compute-Eq-north-north-suspension-Prop =
    htpy-eq
      ( compute-north-cogap-suspension suspension-structure-Eq-suspension-Prop)
      ( north-suspension) 
    compute-north-cogap-suspension suspension-structure-Eq-north-suspension-Prop

  compute-Eq-north-north-suspension-Prop :
    Eq-suspension-Prop north-suspension north-suspension  unit
  compute-Eq-north-north-suspension-Prop =
    inv-compute-raise-unit l ∘e
    equiv-eq eq-compute-Eq-north-north-suspension-Prop

  is-contr-Eq-north-north-suspension-Prop :
    is-contr (Eq-suspension-Prop north-suspension north-suspension)
  is-contr-Eq-north-north-suspension-Prop =
    is-contr-equiv-raise-unit
      ( equiv-eq eq-compute-Eq-north-north-suspension-Prop)

  eq-compute-Eq-south-south-suspension-Prop :
    Eq-suspension-Prop south-suspension south-suspension  raise-unit l
  eq-compute-Eq-south-south-suspension-Prop =
    htpy-eq
      ( compute-south-cogap-suspension suspension-structure-Eq-suspension-Prop)
      ( south-suspension) 
    compute-south-cogap-suspension suspension-structure-Eq-south-suspension-Prop

  compute-Eq-south-south-suspension-Prop :
    Eq-suspension-Prop south-suspension south-suspension  unit
  compute-Eq-south-south-suspension-Prop =
    inv-compute-raise-unit l ∘e
    equiv-eq eq-compute-Eq-south-south-suspension-Prop

  is-contr-Eq-south-south-suspension-Prop :
    is-contr (Eq-suspension-Prop south-suspension south-suspension)
  is-contr-Eq-south-south-suspension-Prop =
    is-contr-equiv-raise-unit
      ( equiv-eq eq-compute-Eq-south-south-suspension-Prop)

  eq-compute-Eq-north-south-suspension-Prop :
    Eq-suspension-Prop north-suspension south-suspension  type-Prop P
  eq-compute-Eq-north-south-suspension-Prop =
    htpy-eq
      ( compute-north-cogap-suspension suspension-structure-Eq-suspension-Prop)
      ( south-suspension) 
    compute-south-cogap-suspension suspension-structure-Eq-north-suspension-Prop

  eq-compute-Eq-south-north-suspension-Prop :
    Eq-suspension-Prop south-suspension north-suspension  type-Prop P
  eq-compute-Eq-south-north-suspension-Prop =
    htpy-eq
      ( compute-south-cogap-suspension suspension-structure-Eq-suspension-Prop)
      ( north-suspension) 
    compute-north-cogap-suspension suspension-structure-Eq-south-suspension-Prop

The observational equality on the suspension of a proposition is propositional.

  abstract
    is-prop-Eq-north-suspension-Prop :
      (y : suspension-Prop P)  is-prop (Eq-north-suspension-Prop y)
    is-prop-Eq-north-suspension-Prop =
      dependent-cogap-suspension
        ( λ x  is-prop (Eq-north-suspension-Prop x))
        ( ( inv-tr
            ( is-prop)
            ( compute-north-cogap-suspension
              ( suspension-structure-Eq-north-suspension-Prop))
            ( is-prop-raise-unit)) ,
          ( inv-tr
            ( is-prop)
            ( compute-south-cogap-suspension
              ( suspension-structure-Eq-north-suspension-Prop))
            ( is-prop-type-Prop P)) ,
          ( λ _ 
            eq-is-prop
              ( is-prop-is-prop (Eq-north-suspension-Prop south-suspension))))

  abstract
    is-prop-Eq-south-suspension-Prop :
      (y : suspension-Prop P)  is-prop (Eq-south-suspension-Prop y)
    is-prop-Eq-south-suspension-Prop =
      dependent-cogap-suspension
        ( λ x  is-prop (Eq-south-suspension-Prop x))
        ( ( inv-tr
            ( is-prop)
            ( compute-north-cogap-suspension
              ( suspension-structure-Eq-south-suspension-Prop))
            ( is-prop-type-Prop P)) ,
          ( inv-tr
            ( is-prop)
            ( compute-south-cogap-suspension
              ( suspension-structure-Eq-south-suspension-Prop))
            ( is-prop-raise-unit)) ,
          ( λ _ 
            eq-is-prop
              ( is-prop-is-prop (Eq-south-suspension-Prop south-suspension))))

  abstract
    is-prop-Eq-suspension-Prop :
      (x y : suspension-Prop P)  is-prop (Eq-suspension-Prop x y)
    is-prop-Eq-suspension-Prop x y =
      dependent-cogap-suspension
        ( λ x  is-prop (Eq-suspension-Prop x y))
        ( ( inv-tr
            ( is-prop)
            ( htpy-eq
              ( compute-north-cogap-suspension
                ( suspension-structure-Eq-suspension-Prop))
              ( y))
            ( is-prop-Eq-north-suspension-Prop y)) ,
          ( inv-tr
            ( is-prop)
            ( htpy-eq
              ( compute-south-cogap-suspension
                ( suspension-structure-Eq-suspension-Prop))
              ( y))
            ( is-prop-Eq-south-suspension-Prop y)) ,
          ( λ _ 
            eq-is-prop
              ( is-prop-is-prop (Eq-suspension-Prop south-suspension y))))
        ( x)

The observational equality characterizes equality in ΣP.

  refl-Eq-suspension-Prop : (x : suspension-Prop P)  Eq-suspension-Prop x x
  refl-Eq-suspension-Prop =
    dependent-cogap-suspension
      ( λ x  Eq-suspension-Prop x x)
      ( ( map-inv-eq
          ( ( htpy-eq
              ( compute-north-cogap-suspension
                ( suspension-structure-Eq-suspension-Prop))
              ( north-suspension)) 
            ( compute-north-cogap-suspension
              ( suspension-structure-Eq-north-suspension-Prop)))
          ( raise-star)) ,
        ( map-inv-eq
          ( ( htpy-eq
              ( compute-south-cogap-suspension
                ( suspension-structure-Eq-suspension-Prop))
              ( south-suspension)) 
            ( compute-south-cogap-suspension
              ( suspension-structure-Eq-south-suspension-Prop)))
          ( raise-star)) ,
        ( λ _ 
          eq-is-contr
            ( inv-tr
              ( is-contr)
              ( eq-compute-Eq-south-south-suspension-Prop)
              ( is-contr-raise-unit))))

  Eq-eq-suspension-Prop :
    (x y : suspension-Prop P)  x  y  Eq-suspension-Prop x y
  Eq-eq-suspension-Prop x .x refl = refl-Eq-suspension-Prop x

  dependent-suspension-structure-eq-north-Eq-north-suspension-Prop :
    dependent-suspension-structure
      ( λ y  Eq-suspension-Prop north-suspension y  north-suspension  y)
      ( suspension-structure-suspension (type-Prop P))
  dependent-suspension-structure-eq-north-Eq-north-suspension-Prop =
    ( ( λ _  refl) ,
      ( λ u 
        meridian-suspension
          ( map-eq eq-compute-Eq-north-south-suspension-Prop u)) ,
      ( λ p 
        eq-is-contr
          ( is-contr-function-type
            ( is-prop-is-contr
              ( is-contr-suspension-is-contr
                ( is-proof-irrelevant-type-Prop P p))
              ( north-suspension)
              ( south-suspension)))))

  eq-north-Eq-north-suspension-Prop :
    (y : suspension-Prop P) 
    Eq-suspension-Prop north-suspension y  north-suspension  y
  eq-north-Eq-north-suspension-Prop =
    dependent-cogap-suspension
      ( λ y  Eq-suspension-Prop north-suspension y  north-suspension  y)
      ( dependent-suspension-structure-eq-north-Eq-north-suspension-Prop)

  dependent-suspension-structure-eq-south-Eq-south-suspension-Prop :
    dependent-suspension-structure
      ( λ y  Eq-suspension-Prop south-suspension y  south-suspension  y)
      ( suspension-structure-suspension (type-Prop P))
  dependent-suspension-structure-eq-south-Eq-south-suspension-Prop =
    ( ( λ u 
        inv
          ( meridian-suspension
            ( map-eq eq-compute-Eq-south-north-suspension-Prop u))) ,
      ( λ _  refl) ,
      ( λ p 
        eq-is-contr
          ( is-contr-function-type
            ( is-prop-is-contr
              ( is-contr-suspension-is-contr
                ( is-proof-irrelevant-type-Prop P p))
              ( south-suspension)
              ( south-suspension)))))

  eq-south-Eq-south-suspension-Prop :
    (y : suspension-Prop P) 
    Eq-suspension-Prop south-suspension y  south-suspension  y
  eq-south-Eq-south-suspension-Prop =
    dependent-cogap-suspension
      ( λ y  Eq-suspension-Prop south-suspension y  south-suspension  y)
      ( dependent-suspension-structure-eq-south-Eq-south-suspension-Prop)

  eq-Eq-suspension-Prop :
    (x y : suspension-Prop P)  Eq-suspension-Prop x y  x  y
  eq-Eq-suspension-Prop =
    dependent-cogap-suspension
      ( λ x  (y : suspension-Prop P)  Eq-suspension-Prop x y  x  y)
      ( ( eq-north-Eq-north-suspension-Prop) ,
        ( eq-south-Eq-south-suspension-Prop) ,
        ( λ p 
          eq-is-contr
            ( is-contr-Π
              ( λ y 
                is-contr-function-type
                  ( is-prop-is-contr
                    ( is-contr-suspension-is-contr
                      ( is-proof-irrelevant-type-Prop P p))
                    ( south-suspension)
                    ( y))))))

  abstract
    is-equiv-Eq-eq-suspension-Prop :
      (x y : suspension-Prop P)  is-equiv (Eq-eq-suspension-Prop x y)
    is-equiv-Eq-eq-suspension-Prop x =
      fundamental-theorem-id-section
        ( x)
        ( Eq-eq-suspension-Prop x)
        ( λ y 
          ( eq-Eq-suspension-Prop x y) ,
          ( λ _  eq-is-prop (is-prop-Eq-suspension-Prop x y)))

  abstract
    is-equiv-eq-Eq-suspension-Prop :
      (x y : suspension-Prop P)  is-equiv (eq-Eq-suspension-Prop x y)
    is-equiv-eq-Eq-suspension-Prop x =
      fundamental-theorem-id-retraction
        ( x)
        ( eq-Eq-suspension-Prop x)
        ( λ y 
          ( Eq-eq-suspension-Prop x y) ,
          ( λ _  eq-is-prop (is-prop-Eq-suspension-Prop x y)))

  equiv-Eq-eq-suspension-Prop :
    (x y : suspension-Prop P)  (x  y)  Eq-suspension-Prop x y
  equiv-Eq-eq-suspension-Prop x y =
    ( Eq-eq-suspension-Prop x y , is-equiv-Eq-eq-suspension-Prop x y)

  equiv-eq-Eq-suspension-Prop :
    (x y : suspension-Prop P)  Eq-suspension-Prop x y  (x  y)
  equiv-eq-Eq-suspension-Prop x y =
    ( eq-Eq-suspension-Prop x y , is-equiv-eq-Eq-suspension-Prop x y)

  abstract
    is-torsorial-Eq-suspension-Prop :
      (x : suspension-Prop P)  is-torsorial (Eq-suspension-Prop x)
    is-torsorial-Eq-suspension-Prop x =
      fundamental-theorem-id'
        ( Eq-eq-suspension-Prop x)
        ( is-equiv-Eq-eq-suspension-Prop x)

Piecing it all together, we conclude that suspensions of propositions are sets.

  abstract
    is-set-suspension-Prop : is-set (suspension-Prop P)
    is-set-suspension-Prop x y =
      is-prop-equiv
        ( equiv-Eq-eq-suspension-Prop x y)
        ( is-prop-Eq-suspension-Prop x y)

  suspension-set-Prop : Set l
  suspension-set-Prop = suspension-Prop P , is-set-suspension-Prop
  compute-eq-north-south-suspension-Prop :
    (north-suspension {X = type-Prop P}  south-suspension)  type-Prop P
  compute-eq-north-south-suspension-Prop =
    equiv-eq eq-compute-Eq-north-south-suspension-Prop ∘e
    equiv-Eq-eq-suspension-Prop north-suspension south-suspension

  compute-eq-south-north-suspension-Prop :
    (south-suspension {X = type-Prop P}  north-suspension)  type-Prop P
  compute-eq-south-north-suspension-Prop =
    equiv-eq eq-compute-Eq-south-north-suspension-Prop ∘e
    equiv-Eq-eq-suspension-Prop south-suspension north-suspension

Suspensions of propositions are Kuratowski finite sets

module _
  {l : Level} (P : Prop l)
  where

  is-kuratowski-finite-set-suspension-Prop :
    is-kuratowski-finite-set (suspension-set-Prop P)
  is-kuratowski-finite-set-suspension-Prop =
    intro-exists 2
      ( comp-surjection
        ( surjection-bool-suspension)
        ( surjection-equiv equiv-bool-Fin-two-ℕ))

See also

  • Suspensions of propositions are used in the proof of Diaconescu’s theorem, which states that the axiom of choice implies the law of excluded middle.

References

[UF13]
The Univalent Foundations Program. Homotopy Type Theory: Univalent Foundations of Mathematics. Institute for Advanced Study, 2013. URL: https://homotopytypetheory.org/book/, arXiv:1308.0729.

Recent changes