# Maps between categories

```agda
module category-theory.maps-categories where
```

<details><summary>Imports</summary>

```agda
open import category-theory.categories
open import category-theory.maps-precategories

open import foundation.equivalences
open import foundation.homotopies
open import foundation.identity-types
open import foundation.torsorial-type-families
open import foundation.universe-levels
```

</details>

## Idea

A **map** from a [category](category-theory.categories.md) `C` to a category `D`
consists of:

- a map `F₀ : C → D` on objects,
- a map `F₁ : hom x y → hom (F₀ x) (F₀ y)` on morphisms

## Definition

### Maps between categories

```agda
module _
  {l1 l2 l3 l4 : Level}
  (C : Category l1 l2)
  (D : Category l3 l4)
  where

  map-Category : UU (l1  l2  l3  l4)
  map-Category =
    map-Precategory (precategory-Category C) (precategory-Category D)

  obj-map-Category :
    (F : map-Category)  obj-Category C  obj-Category D
  obj-map-Category =
    obj-map-Precategory (precategory-Category C) (precategory-Category D)

  hom-map-Category :
    (F : map-Category)
    {x y : obj-Category C} 
    hom-Category C x y 
    hom-Category D
      ( obj-map-Category F x)
      ( obj-map-Category F y)
  hom-map-Category =
    hom-map-Precategory (precategory-Category C) (precategory-Category D)
```

## Properties

### Characterization of equality of maps between categories

```agda
module _
  {l1 l2 l3 l4 : Level}
  (C : Category l1 l2)
  (D : Category l3 l4)
  where

  coherence-htpy-map-Category :
    (f g : map-Category C D) 
    (obj-map-Category C D f ~ obj-map-Category C D g) 
    UU (l1  l2  l4)
  coherence-htpy-map-Category =
    coherence-htpy-map-Precategory
      ( precategory-Category C)
      ( precategory-Category D)

  htpy-map-Category :
    (f g : map-Category C D)  UU (l1  l2  l3  l4)
  htpy-map-Category =
    htpy-map-Precategory (precategory-Category C) (precategory-Category D)

  refl-htpy-map-Category :
    (f : map-Category C D)  htpy-map-Category f f
  refl-htpy-map-Category =
    refl-htpy-map-Precategory (precategory-Category C) (precategory-Category D)

  htpy-eq-map-Category :
    (f g : map-Category C D)  (f  g)  htpy-map-Category f g
  htpy-eq-map-Category =
    htpy-eq-map-Precategory
      ( precategory-Category C)
      ( precategory-Category D)

  is-torsorial-htpy-map-Category :
    (f : map-Category C D)  is-torsorial (htpy-map-Category f)
  is-torsorial-htpy-map-Category =
    is-torsorial-htpy-map-Precategory
      ( precategory-Category C)
      ( precategory-Category D)

  is-equiv-htpy-eq-map-Category :
    (f g : map-Category C D)  is-equiv (htpy-eq-map-Category f g)
  is-equiv-htpy-eq-map-Category =
    is-equiv-htpy-eq-map-Precategory
      ( precategory-Category C)
      ( precategory-Category D)

  equiv-htpy-eq-map-Category :
    (f g : map-Category C D)  (f  g)  htpy-map-Category f g
  equiv-htpy-eq-map-Category =
    equiv-htpy-eq-map-Precategory
      ( precategory-Category C)
      ( precategory-Category D)

  eq-htpy-map-Category :
    (f g : map-Category C D)  htpy-map-Category f g  (f  g)
  eq-htpy-map-Category =
    eq-htpy-map-Precategory (precategory-Category C) (precategory-Category D)
```

## See also

- [Functors between categories](category-theory.functors-categories.md)
- [The category of maps and natural transformations between categories](category-theory.category-of-maps-categories.md)