module Cat.Instances.Discrete.Pre where
Fundamental pregroupoids🔗
If is a type with no known h-level, we can not directly define a precategory where the type of objects is and is the type of paths since we will not know that this type is a set. However, we can still define an interesting precategory with type of objects by defining to be the set truncation
Since under Rezk completion this precategory presents the “path groupoid” of the groupoid truncation we refer to it as the fundamental pregroupoid of and denote it The naming and notation refers to the fundamental groups of Indeed, if is a point, then the endomorphism space is exactly the fundamental group
The fundamental pregroupoid of a type is the precategory with type of objects where the set of morphisms is given by the set truncation of the path space
Π₁ : ∀ {ℓ} → Type ℓ → Precategory ℓ ℓ Π₁ X .Ob = X Π₁ X .Hom x y = ∥ x ≡ y ∥₀ Π₁ X .Hom-set x y = hlevel 2 Π₁ X .id = inc refl Π₁ X ._∘_ p q = ⦇ q ∙ p ⦈ Π₁ X .idr = elim! λ p → ap ∥_∥₀.inc (∙-idl p) Π₁ X .idl = elim! λ p → ap ∥_∥₀.inc (∙-idr p) Π₁ X .assoc = elim! λ p q r → ap ∥_∥₀.inc (sym (∙-assoc r q p))
As for discrete categories, we can extend functions to functors Turning families of objects into diagrams is the primary motivation for the construction of if was known to be a groupoid, we could replace with its groupoid truncation, and use the ordinary “discrete category” construction as the domain of the diagram; but since we will not be able to eliminate in general, we have to choose a different domain instead.
Π₁-adjunct₁ : {x y : X} (F : X → ⌞ C ⌟) → ∥ x ≡ y ∥₀ → Hom (F x) (F y) Π₁-adjunct₁ F (inc x) = path→iso (ap F x) .to Π₁-adjunct₁ F (squash x y p q i j) = Hom-set _ _ (Π₁-adjunct₁ F x) (Π₁-adjunct₁ F y) (λ i → Π₁-adjunct₁ F (p i)) (λ i → Π₁-adjunct₁ F (q i)) i j Π₁-adjunct : (X → ⌞ C ⌟) → Functor (Π₁ X) C Π₁-adjunct F .F₀ = F Π₁-adjunct F .F₁ = Π₁-adjunct₁ F Π₁-adjunct F .F-id = transport-refl _ Π₁-adjunct F .F-∘ {x = x} = elim! λ p q → path→iso (ap F (q ∙ p)) .to ≡⟨ ap (λ e → subst (Hom (F x)) e id) (ap-∙ F q p) ⟩≡ path→iso (ap F q ∙ ap F p) .to ≡⟨ path→to-∙ C (ap F q) (ap F p) ⟩≡ (path→iso (ap F p) .to ∘ path→iso (ap F q) .to) ∎