{-# OPTIONS --safe #-}
module Cubical.Categories.RezkCompletion.Base where
open import Cubical.Foundations.Prelude
open import Cubical.Categories.Category
open import Cubical.Categories.Functor
open import Cubical.Categories.Functor.ComposeProperty
open import Cubical.Categories.Equivalence
open import Cubical.Categories.Equivalence.WeakEquivalence
open import Cubical.Categories.Instances.Functors
open import Cubical.Data.Prod
private
variable
ℓC ℓC' ℓD ℓD' : Level
C : Category ℓC ℓC'
D : Category ℓD ℓD'
isRezkCompletion : (F : Functor C D) → Typeω
isRezkCompletion {D = D} F =
isUnivalent D
×ω ({ℓ ℓ' : Level}{E : Category ℓ ℓ'} → isUnivalent E → isEquivalence (precomposeF E F))
open _×ω_
makeIsRezkCompletion : {F : Functor C D} → isUnivalent D → isWeakEquivalence F → isRezkCompletion F
makeIsRezkCompletion univ w-equiv .fst = univ
makeIsRezkCompletion univ w-equiv .snd univE = isWeakEquiv→isEquivPrecomp univE _ w-equiv