open import Cat.Diagram.Equaliser.Kernel open import Cat.Instances.Shape.Terminal open import Cat.Functor.FullSubcategory open import Cat.Diagram.Initial open import Cat.Instances.Comma open import Cat.Instances.Slice open import Cat.Abelian.Base open import Cat.Prelude open /-Obj open /-Hom open ↓Obj open ↓Hom module wip.image {o ℓ} {C : Precategory o ℓ} (A : is-abelian C) where open is-abelian A -- images : ∀ {A B} (f : Hom A B) → Image f -- images f = im where -- obj : ↓Obj (const! (cut f)) Forget-full-subcat -- obj .x = tt images : ∀ {A B} (f : Hom A B) → Image f -- images f = im where -- obj .y .object = cut (Ker.kernel (Coker.coeq f)) -- obj .y .witness {c} = kernels-are-subobjects C ∅ _ (Ker.has-is-kernel _) -- -- obj .map ./-Hom.map = decompose f .fst ∘ Coker.coeq _ -- -- obj .map ./-Hom.commutes = pulll (Ker.universal _) ∙ Coker.universal _