# Precomposition of type families
```agda
module foundation.precomposition-type-families where
```
<details><summary>Imports</summary>
```agda
open import foundation.homotopy-induction
open import foundation.transport-along-homotopies
open import foundation.universe-levels
open import foundation.whiskering-homotopies-composition
open import foundation-core.function-types
open import foundation-core.homotopies
open import foundation-core.identity-types
```
</details>
## Idea
Any map `f : A โ B` induces a
{{#concept "precomposition operation" Disambiguation="type families" Agda=precomp-family}}
```text
(B โ ๐ฐ) โ (A โ ๐ฐ)
```
given by [precomposing](foundation-core.precomposition-functions.md) any
`Q : B โ ๐ฐ` to `Q โ f : A โ ๐ฐ`.
## Definitions
### The precomposition operation on type familes
```agda
module _
{l1 l2 : Level} {A : UU l1} {B : UU l2} (f : A โ B)
where
precomp-family : {l : Level} โ (B โ UU l) โ (A โ UU l)
precomp-family Q = Q โ f
```
## Properties
### Transport along homotopies in precomposed type families
[Transporting](foundation.transport-along-homotopies.md) along a
[homotopy](foundation.homotopies.md) `H : g ~ h` in the family `Q โ f` gives us
a map of families of elements
```text
((a : A) โ Q (f (g a))) โ ((a : A) โ Q (f (h a))) .
```
We show that this map is homotopic to transporting along
`f ยทl H : f โ g ~ f โ h` in the family `Q`.
```agda
module _
{l1 l2 l3 l4 : Level} {A : UU l1} {B : UU l2} (f : A โ B) (Q : B โ UU l3)
{X : UU l4} {g : X โ A}
where
statement-tr-htpy-precomp-family :
{h : X โ A} (H : g ~ h) โ UU (l3 โ l4)
statement-tr-htpy-precomp-family H =
tr-htpy (ฮป _ โ precomp-family f Q) H ~ tr-htpy (ฮป _ โ Q) (f ยทl H)
abstract
tr-htpy-precomp-family :
{h : X โ A} (H : g ~ h) โ
statement-tr-htpy-precomp-family H
tr-htpy-precomp-family =
ind-htpy g
( ฮป h โ statement-tr-htpy-precomp-family)
( refl-htpy)
compute-tr-htpy-precomp-family :
tr-htpy-precomp-family refl-htpy ๏ผ
refl-htpy
compute-tr-htpy-precomp-family =
compute-ind-htpy g
( ฮป h โ statement-tr-htpy-precomp-family)
( refl-htpy)
```