open import Algebra.Bundles open import Algebra.GSet open import Categories.Category.Core open import Relation.Binary.PropositionalEquality as ≡ using (_≡_) open import Level module Category.GSets {c ℓ : Level} where open Category G-Sets : Group c ℓ → Category (suc (c ⊔ ℓ)) (suc c ⊔ suc ℓ) c G-Sets G .Obj = G-Set G G-Sets G ._⇒_ = G-Set-Morphism G G-Sets G ._≈_ f g = ∀ {x} → f.u x ≡ g.u x where module f = G-Set-Morphism f module g = G-Set-Morphism g G-Sets G .id = record { u = λ x → x ; isEqui = ≡.refl } G-Sets G ._∘_ f g .G-Set-Morphism.u x = f.u (g.u x) where module f = G-Set-Morphism f module g = G-Set-Morphism g -- TODO without rewrite G-Sets G ._∘_ {X} {Y} {Z} f g .G-Set-Morphism.isEqui {h} {x} rewrite G-Set-Morphism.isEqui g {h} {x} | G-Set-Morphism.isEqui f {h} {G-Set-Morphism.u g x} = ≡.refl where module f = G-Set-Morphism f module g = G-Set-Morphism g G-Sets G .assoc = ≡.refl G-Sets G .sym-assoc = ≡.refl G-Sets G .identityˡ = ≡.refl G-Sets G .identityʳ = ≡.refl G-Sets G .identity² = ≡.refl G-Sets G .equiv = record { refl = ≡.refl ; sym = λ eq → ≡.sym eq ; trans = λ eq₁ eq₂ → ≡.trans eq₁ eq₂ } G-Sets G .∘-resp-≈ {X} {Y} {Z} {f} {h} {g} {i} f≈h g≈i = ≡.trans f≈h (≡.cong < h > g≈i) where open G-Set-Morphism using () renaming (u to <_>)