Home

1以上のh-levelは同一視型のレトラクトで閉じている

module foundations.h-level-closed-under-retract-of-identity where
Imports
open import foundations.universe
open import foundations.h-level
open import foundations.retraction
open import foundations.proposition
open import foundations.set
open import foundations.contractible-type
open import foundations.sigma-type
open import foundations.identity-type
open import foundations.homotopy
open import foundations.function
open import foundations.functions-are-functors
open import foundations.groupoid-laws
open import foundations.natural-number
open import foundations.h-level-closed-under-retract

少し面白いことに、isPropRetractIdHasRetractionを仮定しない。

private variable
   : Level
  A B : Type 

isPropRetractId : isProp B
   (s : A  B)
   (∀ {x y : A}  s x  s y  x  y)
   isProp A
isPropRetractId f s R x y = R p
  where
    p : s x  s y
    p = f (s x) (s y)

ofHLevelRetractId :  n
   ofHLevel (suc n) B
   (s : A  B)
   (∀ {x y : A}  HasRetraction (ap s {x = x} {y = y}))
   ofHLevel (suc n) A
ofHLevelRetractId zero f s R = isPropRetractId f s (R .fst)
ofHLevelRetractId {A = A} (suc n) f s R = k
  where
    k :  (x y : A)  ofHLevel (suc n) (x  y)
    k x y = ofHLevelRetract (suc n) (f (s x) (s y)) (ap s , R)

isSetRetractId : isSet B
   (s : A  B)
   (∀ {x y : A}  HasRetraction (ap s {x = x} {y = y}))
   isSet A
isSetRetractId = ofHLevelRetractId 1