{-# OPTIONS --safe #-} module Cubical.HITs.Localization.Properties where open import Cubical.Foundations.Prelude open import Cubical.Foundations.Function open import Cubical.Foundations.Equiv open import Cubical.Foundations.Isomorphism open import Cubical.Foundations.Equiv.PathSplit open isPathSplitEquiv open import Cubical.HITs.Localization.Base module _ {ℓα ℓs ℓt} {A : Type ℓα} {S : A → Type ℓs} {T : A → Type ℓt} where rec : ∀ {F : ∀ α → S α → T α} {ℓ ℓ'} {X : Type ℓ} {Y : Type ℓ'} → (lY : isLocal F Y) → (X → Y) → Localize F X → Y rec lY g ∣ x ∣ = g x rec lY g (ext α f t) = fst (sec (lY α)) (λ s → rec lY g (f s)) t rec lY g (isExt α f s i) = snd (sec (lY α)) (λ s → rec lY g (f s)) i s rec lY f (≡ext α g h p t i) = fst (secCong (lY α) (λ t → rec lY f (g t)) (λ t → rec lY f (h t))) (λ i s → rec lY f (p s i)) i t rec lY f (≡isExt α g h p t i j) = snd (secCong (lY α) (λ t → rec lY f (g t)) (λ t → rec lY f (h t))) (λ i s → rec lY f (p s i)) i j t