# Maps between set-magmoids
```agda
module category-theory.maps-set-magmoids where
```
<details><summary>Imports</summary>
```agda
open import category-theory.set-magmoids
open import foundation.action-on-identifications-functions
open import foundation.commuting-pentagons-of-identifications
open import foundation.dependent-pair-types
open import foundation.function-types
open import foundation.identity-types
open import foundation.universe-levels
```
</details>
## Idea
A **map** from a [set-magmoid](category-theory.set-magmoids.md) `C` to a set
magmoid `D` consists of:
- a map `F₀ : C → D` on objects, and
- a map `F₁ : hom x y → hom (F₀ x) (F₀ y)` on morphisms.
## Definitions
### Maps between set-magmoids
```agda
module _
{l1 l2 l3 l4 : Level}
(C : Set-Magmoid l1 l2)
(D : Set-Magmoid l3 l4)
where
map-Set-Magmoid : UU (l1 ⊔ l2 ⊔ l3 ⊔ l4)
map-Set-Magmoid =
Σ ( obj-Set-Magmoid C → obj-Set-Magmoid D)
( λ F₀ →
{x y : obj-Set-Magmoid C} →
hom-Set-Magmoid C x y →
hom-Set-Magmoid D (F₀ x) (F₀ y))
obj-map-Set-Magmoid :
(F : map-Set-Magmoid) → obj-Set-Magmoid C → obj-Set-Magmoid D
obj-map-Set-Magmoid = pr1
hom-map-Set-Magmoid :
(F : map-Set-Magmoid) {x y : obj-Set-Magmoid C} →
hom-Set-Magmoid C x y →
hom-Set-Magmoid D (obj-map-Set-Magmoid F x) (obj-map-Set-Magmoid F y)
hom-map-Set-Magmoid = pr2
```
### The identity map on a set-magmoid
```agda
module _
{l1 l2 : Level} (A : Set-Magmoid l1 l2)
where
id-map-Set-Magmoid : map-Set-Magmoid A A
pr1 id-map-Set-Magmoid = id
pr2 id-map-Set-Magmoid = id
```
### Composition of maps on set-magmoids
Any two compatible maps can be composed to a new map.
```agda
module _
{l1 l2 l3 l4 l5 l6 : Level}
(A : Set-Magmoid l1 l2)
(B : Set-Magmoid l3 l4)
(C : Set-Magmoid l5 l6)
(G : map-Set-Magmoid B C)
(F : map-Set-Magmoid A B)
where
obj-comp-map-Set-Magmoid : obj-Set-Magmoid A → obj-Set-Magmoid C
obj-comp-map-Set-Magmoid =
obj-map-Set-Magmoid B C G ∘ obj-map-Set-Magmoid A B F
hom-comp-map-Set-Magmoid :
{x y : obj-Set-Magmoid A} →
hom-Set-Magmoid A x y →
hom-Set-Magmoid C (obj-comp-map-Set-Magmoid x) (obj-comp-map-Set-Magmoid y)
hom-comp-map-Set-Magmoid =
hom-map-Set-Magmoid B C G ∘ hom-map-Set-Magmoid A B F
comp-map-Set-Magmoid : map-Set-Magmoid A C
pr1 comp-map-Set-Magmoid = obj-comp-map-Set-Magmoid
pr2 comp-map-Set-Magmoid = hom-comp-map-Set-Magmoid
```
## Properties
### Categorical laws for map composition
#### Unit laws for map composition
```agda
module _
{l1 l2 l3 l4 : Level}
(A : Set-Magmoid l1 l2) (B : Set-Magmoid l3 l4)
(F : map-Set-Magmoid A B)
where
left-unit-law-comp-map-Set-Magmoid :
comp-map-Set-Magmoid A B B (id-map-Set-Magmoid B) F = F
left-unit-law-comp-map-Set-Magmoid = refl
right-unit-law-comp-map-Set-Magmoid :
comp-map-Set-Magmoid A A B F (id-map-Set-Magmoid A) = F
right-unit-law-comp-map-Set-Magmoid = refl
```
#### Associativity of map composition
```agda
module _
{l1 l1' l2 l2' l3 l3' l4 l4' : Level}
(A : Set-Magmoid l1 l1')
(B : Set-Magmoid l2 l2')
(C : Set-Magmoid l3 l3')
(D : Set-Magmoid l4 l4')
(F : map-Set-Magmoid A B)
(G : map-Set-Magmoid B C)
(H : map-Set-Magmoid C D)
where
associative-comp-map-Set-Magmoid :
comp-map-Set-Magmoid A B D (comp-map-Set-Magmoid B C D H G) F =
comp-map-Set-Magmoid A C D H (comp-map-Set-Magmoid A B C G F)
associative-comp-map-Set-Magmoid = refl
```
#### Mac Lane pentagon for map composition
The Mac Lane pentagon is a higher coherence of the associator for map
composition. Since map composition is strictly associative, the Mac Lane
pentagon also follows by reflexivity.
```text
(I(GH))F ---- I((GH)F)
/ \
/ \
((IH)G)F I(H(GF))
\ /
\ /
(IH)(GF)
```
```agda
module _
{l1 l1' l2 l2' l3 l3' l4 l4' : Level}
(A : Set-Magmoid l1 l1')
(B : Set-Magmoid l2 l2')
(C : Set-Magmoid l3 l3')
(D : Set-Magmoid l4 l4')
(E : Set-Magmoid l4 l4')
(F : map-Set-Magmoid A B)
(G : map-Set-Magmoid B C)
(H : map-Set-Magmoid C D)
(I : map-Set-Magmoid D E)
where
mac-lane-pentagon-comp-map-Set-Magmoid :
coherence-pentagon-identifications
{ x =
comp-map-Set-Magmoid A B E
( comp-map-Set-Magmoid B D E I
( comp-map-Set-Magmoid B C D H G))
( F)}
{ comp-map-Set-Magmoid A D E I
( comp-map-Set-Magmoid A B D
( comp-map-Set-Magmoid B C D H G)
( F))}
{ comp-map-Set-Magmoid A B E
( comp-map-Set-Magmoid B C E
( comp-map-Set-Magmoid C D E I H)
( G))
( F)}
{ comp-map-Set-Magmoid A D E
( I)
( comp-map-Set-Magmoid A C D
( H)
( comp-map-Set-Magmoid A B C G F))}
{ comp-map-Set-Magmoid A C E
( comp-map-Set-Magmoid C D E I H)
( comp-map-Set-Magmoid A B C G F)}
( associative-comp-map-Set-Magmoid A B D E
( F) (comp-map-Set-Magmoid B C D H G) (I))
( ap
( λ p → comp-map-Set-Magmoid A B E p F)
( inv (associative-comp-map-Set-Magmoid B C D E G H I)))
( ap
( λ p → comp-map-Set-Magmoid A D E I p)
( associative-comp-map-Set-Magmoid A B C D F G H))
( associative-comp-map-Set-Magmoid A B C E
( F) (G) (comp-map-Set-Magmoid C D E I H))
( inv
( associative-comp-map-Set-Magmoid A C D E
(comp-map-Set-Magmoid A B C G F) H I))
mac-lane-pentagon-comp-map-Set-Magmoid = refl
```
## See also
- [Functors between set-magmoids](category-theory.maps-set-magmoids.md)
- [The precategory of maps and natural transformations between precategories](category-theory.precategory-of-maps-precategories.md)
## External links
A wikidata identifier was not available for this concept.