{-# OPTIONS --without-K --safe #-}
module Categories.Category where
open import Level
open import Categories.Category.Core public
private
variable
o ℓ e : Level
infix 10 _[_,_] _[_≈_] _[_∘_]
_[_,_] : (C : Category o ℓ e) → (X : Category.Obj C) → (Y : Category.Obj C) → Set ℓ
_[_,_] = Category._⇒_
_[_≈_] : (C : Category o ℓ e) → ∀ {X Y} (f g : C [ X , Y ]) → Set e
_[_≈_] = Category._≈_
_[_∘_] : (C : Category o ℓ e) → ∀ {X Y Z} (f : C [ Y , Z ]) → (g : C [ X , Y ]) → C [ X , Z ]
_[_∘_] = Category._∘_
module Definitions (𝓒 : Category o ℓ e) where
open Category 𝓒
CommutativeSquare : {A B C D : Obj} → (f : A ⇒ B) (g : A ⇒ C) (h : B ⇒ D) (i : C ⇒ D) → Set _
CommutativeSquare f g h i = h ∘ f ≈ i ∘ g
module Commutation (𝓒 : Category o ℓ e) where
open Category 𝓒
infix 1 [_⇒_]⟨_≈_⟩
[_⇒_]⟨_≈_⟩ : ∀ (A B : Obj) → A ⇒ B → A ⇒ B → Set _
[ A ⇒ B ]⟨ f ≈ g ⟩ = f ≈ g
infixl 2 connect
connect : ∀ {A C : Obj} (B : Obj) → A ⇒ B → B ⇒ C → A ⇒ C
connect B f g = g ∘ f
syntax connect B f g = f ⇒⟨ B ⟩ g