{-# OPTIONS --without-K --safe #-} open import Categories.Category using (Category) module Categories.Adjoint.Instance.BaseChange {o ℓ e} (C : Category o ℓ e) where open import Categories.Adjoint using (_⊣_) open import Categories.Adjoint.Compose using (_∘⊣_) open import Categories.Adjoint.Instance.Slice using (TotalSpace⊣ConstantFamily) open import Categories.Category.Slice C using (Slice) open import Categories.Category.Slice.Properties C using (pullback⇒product; slice-slice≃slice) open import Categories.Category.Equivalence.Properties using (module C≅D) open import Categories.Diagram.Pullback C using (Pullback) open import Categories.Functor.Slice.BaseChange C using (BaseChange!; BaseChange*) open Category C module _ {A B : Obj} (f : B ⇒ A) (pullback : ∀ {C} {h : C ⇒ A} → Pullback f h) where !⊣* : BaseChange! f ⊣ BaseChange* f pullback !⊣* = C≅D.L⊣R (slice-slice≃slice f) ∘⊣ TotalSpace⊣ConstantFamily (Slice A) (pullback⇒product pullback)