# Noncoherent wild higher precategories
```agda
{-# OPTIONS --guardedness #-}
module wild-category-theory.noncoherent-wild-higher-precategories where
```
<details><summary>Imports</summary>
```agda
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
```
</details>
## 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 $0$'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](structured-types.globular-types.md) with families of
$n$-morphisms labeled as "identities"
```text
id-hom : (x : 𝑛-Cell 𝒞) → (𝑛+1)-Cell 𝒞 x x
```
and a composition operation at every dimension
```text
comp-hom :
{x y z : 𝑛-Cell 𝒞} → (𝑛+1)-Cell 𝒞 y z → (𝑛+1)-Cell 𝒞 x y → (𝑛+1)-Cell 𝒞 x z.
```
Entirely concretely, we define a
{{#concept "noncoherent wild higher precategory" Agda=Noncoherent-Wild-Higher-Precategory}}
to be a [reflexive](structured-types.reflexive-globular-types.md) and
[transitive](structured-types.transitive-globular-types.md) globular type. We
call the 0-cells the _objects_, the 1-cells the _morphisms_ and the higher cells
the _$n$-morphisms_. The reflexivities are called the _identity morphisms_, and
the transitivity operations are branded as _composition of morphisms_.
## Definitions
### Noncoherent wild higher precategories
```agda
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.
```agda
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))
```
```agda
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)
```
```agda
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)
```