Noncoherent wild higher precategories

Content created by Fredrik Bakke and Vojtěch Štěpančík.

Created on 2024-06-16.
Last modified on 2024-07-10.

{-# OPTIONS --guardedness #-}

module wild-category-theory.noncoherent-wild-higher-precategories where
Imports
open import category-theory.precategories

open import foundation.action-on-identifications-binary-functions
open import foundation.cartesian-product-types
open import foundation.dependent-pair-types
open import foundation.function-types
open import foundation.homotopies
open import foundation.identity-types
open import foundation.sets
open import foundation.strictly-involutive-identity-types
open import foundation.universe-levels

open import structured-types.globular-types
open import structured-types.reflexive-globular-types
open import structured-types.transitive-globular-types

Idea

It is an important open problem known as the coherence problem to define a fully coherent notion of -category in univalent type theory. The subject of wild category theory attempts to recover some of the benefits of -category theory without tackling this problem. We introduce, as one of our basic building blocks in this subject, the notion of a noncoherent wild higher precategory.

A noncoherent wild higher precategory 𝒞 is a structure that attempts at capturing the structure of a higher precategory to the 'th order. It consists of in some sense all of the operations and none of the coherence of a higher precategory. Thus, it is defined as a globular type with families of -morphisms labeled as "identities"

  id-hom : (x : 𝑛-Cell 𝒞) → (𝑛+1)-Cell 𝒞 x x

and a composition operation at every dimension

  comp-hom :
    {x y z : 𝑛-Cell 𝒞} → (𝑛+1)-Cell 𝒞 y z → (𝑛+1)-Cell 𝒞 x y → (𝑛+1)-Cell 𝒞 x z.

Entirely concretely, we define a noncoherent wild higher precategory to be a reflexive and transitive globular type. We call the 0-cells the objects, the 1-cells the morphisms and the higher cells the -morphisms. The reflexivities are called the identity morphisms, and the transitivity operations are branded as composition of morphisms.

Definitions

Noncoherent wild higher precategories

Noncoherent-Wild-Higher-Precategory : (l1 l2 : Level)  UU (lsuc l1  lsuc l2)
Noncoherent-Wild-Higher-Precategory l1 l2 =
  Σ ( UU l1)
    ( λ obj-Noncoherent-Wild-Higher-Precategory 
      Σ ( globular-structure l2 obj-Noncoherent-Wild-Higher-Precategory)
        ( λ hom-globular-structure-Noncoherent-Wild-Higher-Precategory 
          ( is-reflexive-globular-structure
            ( hom-globular-structure-Noncoherent-Wild-Higher-Precategory)) ×
          ( is-transitive-globular-structure
            ( hom-globular-structure-Noncoherent-Wild-Higher-Precategory))))

make-Noncoherent-Wild-Higher-Precategory :
  {l1 l2 : Level} 
  (obj-Noncoherent-Wild-Higher-Precategory : UU l1)
  (hom-globular-structure-Noncoherent-Wild-Higher-Precategory :
    globular-structure l2 obj-Noncoherent-Wild-Higher-Precategory) 
  ( is-reflexive-globular-structure
    hom-globular-structure-Noncoherent-Wild-Higher-Precategory) 
  ( is-transitive-globular-structure
    hom-globular-structure-Noncoherent-Wild-Higher-Precategory) 
  Noncoherent-Wild-Higher-Precategory l1 l2
make-Noncoherent-Wild-Higher-Precategory obj hom id comp =
  ( obj , hom , id , comp)

{-# INLINE make-Noncoherent-Wild-Higher-Precategory #-}

module _
  {l1 l2 : Level} (𝒞 : Noncoherent-Wild-Higher-Precategory l1 l2)
  where

  obj-Noncoherent-Wild-Higher-Precategory : UU l1
  obj-Noncoherent-Wild-Higher-Precategory = pr1 𝒞

  hom-globular-structure-Noncoherent-Wild-Higher-Precategory :
    globular-structure l2 obj-Noncoherent-Wild-Higher-Precategory
  hom-globular-structure-Noncoherent-Wild-Higher-Precategory = pr1 (pr2 𝒞)

  id-hom-globular-structure-Noncoherent-Wild-Higher-Precategory :
    is-reflexive-globular-structure
      ( hom-globular-structure-Noncoherent-Wild-Higher-Precategory)
  id-hom-globular-structure-Noncoherent-Wild-Higher-Precategory =
    pr1 (pr2 (pr2 𝒞))

  comp-hom-globular-structure-Noncoherent-Wild-Higher-Precategory :
    is-transitive-globular-structure
      ( hom-globular-structure-Noncoherent-Wild-Higher-Precategory)
  comp-hom-globular-structure-Noncoherent-Wild-Higher-Precategory =
    pr2 (pr2 (pr2 𝒞))

  globular-type-Noncoherent-Wild-Higher-Precategory : Globular-Type l1 l2
  pr1 globular-type-Noncoherent-Wild-Higher-Precategory =
    obj-Noncoherent-Wild-Higher-Precategory
  pr2 globular-type-Noncoherent-Wild-Higher-Precategory =
    hom-globular-structure-Noncoherent-Wild-Higher-Precategory

We record some common projections for noncoherent wild higher precategories.

  hom-Noncoherent-Wild-Higher-Precategory :
    obj-Noncoherent-Wild-Higher-Precategory 
    obj-Noncoherent-Wild-Higher-Precategory 
    UU l2
  hom-Noncoherent-Wild-Higher-Precategory =
    1-cell-globular-structure
      ( hom-globular-structure-Noncoherent-Wild-Higher-Precategory)

  id-hom-Noncoherent-Wild-Higher-Precategory :
    {x : obj-Noncoherent-Wild-Higher-Precategory} 
    hom-Noncoherent-Wild-Higher-Precategory x x
  id-hom-Noncoherent-Wild-Higher-Precategory =
    refl-1-cell-is-reflexive-globular-structure
      ( id-hom-globular-structure-Noncoherent-Wild-Higher-Precategory)

  comp-hom-Noncoherent-Wild-Higher-Precategory :
    {x y z : obj-Noncoherent-Wild-Higher-Precategory} 
    hom-Noncoherent-Wild-Higher-Precategory y z 
    hom-Noncoherent-Wild-Higher-Precategory x y 
    hom-Noncoherent-Wild-Higher-Precategory x z
  comp-hom-Noncoherent-Wild-Higher-Precategory =
    comp-1-cell-is-transitive-globular-structure
      ( comp-hom-globular-structure-Noncoherent-Wild-Higher-Precategory)

  hom-globular-type-Noncoherent-Wild-Higher-Precategory :
    (x y : obj-Noncoherent-Wild-Higher-Precategory) 
    Globular-Type l2 l2
  pr1 (hom-globular-type-Noncoherent-Wild-Higher-Precategory x y) =
    hom-Noncoherent-Wild-Higher-Precategory x y
  pr2 (hom-globular-type-Noncoherent-Wild-Higher-Precategory x y) =
    globular-structure-1-cell-globular-structure
      ( hom-globular-structure-Noncoherent-Wild-Higher-Precategory)
      ( x)
      ( y)

  hom-noncoherent-wild-higher-precategory-Noncoherent-Wild-Higher-Precategory :
    (x y : obj-Noncoherent-Wild-Higher-Precategory) 
    Noncoherent-Wild-Higher-Precategory l2 l2
  hom-noncoherent-wild-higher-precategory-Noncoherent-Wild-Higher-Precategory
    x y =
    make-Noncoherent-Wild-Higher-Precategory
      ( hom-Noncoherent-Wild-Higher-Precategory x y)
      ( globular-structure-1-cell-globular-structure
        ( hom-globular-structure-Noncoherent-Wild-Higher-Precategory)
        ( x)
        ( y))
      ( is-reflexive-globular-structure-1-cell-is-reflexive-globular-structure
        ( id-hom-globular-structure-Noncoherent-Wild-Higher-Precategory)
        ( x)
        ( y))
      ( is-transitive-globular-structure-1-cell-is-transitive-globular-structure
        ( comp-hom-globular-structure-Noncoherent-Wild-Higher-Precategory)
        ( x)
        ( y))
  2-hom-Noncoherent-Wild-Higher-Precategory :
    {x y : obj-Noncoherent-Wild-Higher-Precategory} 
    hom-Noncoherent-Wild-Higher-Precategory x y 
    hom-Noncoherent-Wild-Higher-Precategory x y 
    UU l2
  2-hom-Noncoherent-Wild-Higher-Precategory =
    2-cell-globular-structure
      ( hom-globular-structure-Noncoherent-Wild-Higher-Precategory)

  id-2-hom-Noncoherent-Wild-Higher-Precategory :
    {x y : obj-Noncoherent-Wild-Higher-Precategory}
    {f : hom-Noncoherent-Wild-Higher-Precategory x y} 
    2-hom-Noncoherent-Wild-Higher-Precategory f f
  id-2-hom-Noncoherent-Wild-Higher-Precategory =
    refl-2-cell-is-reflexive-globular-structure
      ( id-hom-globular-structure-Noncoherent-Wild-Higher-Precategory)

  comp-2-hom-Noncoherent-Wild-Higher-Precategory :
    {x y : obj-Noncoherent-Wild-Higher-Precategory}
    {f g h : hom-Noncoherent-Wild-Higher-Precategory x y} 
    2-hom-Noncoherent-Wild-Higher-Precategory g h 
    2-hom-Noncoherent-Wild-Higher-Precategory f g 
    2-hom-Noncoherent-Wild-Higher-Precategory f h
  comp-2-hom-Noncoherent-Wild-Higher-Precategory =
    comp-2-cell-is-transitive-globular-structure
      ( comp-hom-globular-structure-Noncoherent-Wild-Higher-Precategory)
  3-hom-Noncoherent-Wild-Higher-Precategory :
    {x y : obj-Noncoherent-Wild-Higher-Precategory}
    {f g : hom-Noncoherent-Wild-Higher-Precategory x y} 
    2-hom-Noncoherent-Wild-Higher-Precategory f g 
    2-hom-Noncoherent-Wild-Higher-Precategory f g 
    UU l2
  3-hom-Noncoherent-Wild-Higher-Precategory =
    3-cell-globular-structure
      ( hom-globular-structure-Noncoherent-Wild-Higher-Precategory)

  id-3-hom-Noncoherent-Wild-Higher-Precategory :
    {x y : obj-Noncoherent-Wild-Higher-Precategory}
    {f g : hom-Noncoherent-Wild-Higher-Precategory x y}
    {H : 2-hom-Noncoherent-Wild-Higher-Precategory f g} 
    3-hom-Noncoherent-Wild-Higher-Precategory H H
  id-3-hom-Noncoherent-Wild-Higher-Precategory =
    refl-3-cell-is-reflexive-globular-structure
      ( id-hom-globular-structure-Noncoherent-Wild-Higher-Precategory)

  comp-3-hom-Noncoherent-Wild-Higher-Precategory :
    {x y : obj-Noncoherent-Wild-Higher-Precategory}
    {f g : hom-Noncoherent-Wild-Higher-Precategory x y}
    {H K L : 2-hom-Noncoherent-Wild-Higher-Precategory f g} 
    3-hom-Noncoherent-Wild-Higher-Precategory K L 
    3-hom-Noncoherent-Wild-Higher-Precategory H K 
    3-hom-Noncoherent-Wild-Higher-Precategory H L
  comp-3-hom-Noncoherent-Wild-Higher-Precategory =
    comp-3-cell-is-transitive-globular-structure
      ( comp-hom-globular-structure-Noncoherent-Wild-Higher-Precategory)

Recent changes