# Transport-split type families
```agda
module foundation.transport-split-type-families where
```
<details><summary>Imports</summary>
```agda
open import elementary-number-theory.natural-numbers
open import foundation.action-on-equivalences-functions
open import foundation.action-on-identifications-functions
open import foundation.cartesian-product-types
open import foundation.dependent-pair-types
open import foundation.equivalence-extensionality
open import foundation.equivalence-injective-type-families
open import foundation.equivalences
open import foundation.function-extensionality
open import foundation.fundamental-theorem-of-identity-types
open import foundation.iterated-dependent-product-types
open import foundation.transport-along-identifications
open import foundation.unit-type
open import foundation.univalent-type-families
open import foundation.universal-property-identity-systems
open import foundation.universe-levels
open import foundation-core.embeddings
open import foundation-core.identity-types
open import foundation-core.propositions
open import foundation-core.sections
open import foundation-core.torsorial-type-families
```
</details>
## Idea
A type family `B` over `A` is said to be
{{#concept "transport-split" Disambiguation="type family" Agda=is-transport-split}}
if the map
```text
equiv-tr B : x = y → B x ≃ B y
```
admits a [section](foundation-core.sections.md) for every `x y : A`. By a
corollary of
[the fundamental theorem of identity types](foundation.fundamental-theorem-of-identity-types.md)
every transport-split type family is
[univalent](foundation.univalent-type-families.md), meaning that `equiv-tr B` is
in fact an [equivalence](foundation-core.equivalences.md) for all `x y : A`.
## Definition
### Transport-split type families
```agda
is-transport-split :
{l1 l2 : Level} {A : UU l1} → (A → UU l2) → UU (l1 ⊔ l2)
is-transport-split {A = A} B =
(x y : A) → section (λ (p : x = y) → equiv-tr B p)
```
## Properties
### Transport-split type families are equivalence injective
```agda
module _
{l1 l2 : Level} {A : UU l1} {B : A → UU l2}
where
is-equivalence-injective-is-transport-split :
is-transport-split B → is-equivalence-injective B
is-equivalence-injective-is-transport-split s {x} {y} =
map-section (equiv-tr B) (s x y)
```
### Transport-split type families are univalent
```agda
module _
{l1 l2 : Level} {A : UU l1} {B : A → UU l2}
where
is-transport-split-is-univalent :
is-univalent B → is-transport-split B
is-transport-split-is-univalent U x y = section-is-equiv (U x y)
is-univalent-is-transport-split :
is-transport-split B → is-univalent B
is-univalent-is-transport-split s x =
fundamental-theorem-id-section x (λ y → equiv-tr B) (s x)
```
### The type `is-transport-split` is a proposition
```agda
module _
{l1 l2 : Level} {A : UU l1} {B : A → UU l2}
where
is-proof-irrelevant-is-transport-split :
is-proof-irrelevant (is-transport-split B)
is-proof-irrelevant-is-transport-split s =
is-contr-iterated-Π 2
( λ x y →
is-contr-section-is-equiv (is-univalent-is-transport-split s x y))
is-prop-is-transport-split :
is-prop (is-transport-split B)
is-prop-is-transport-split =
is-prop-is-proof-irrelevant is-proof-irrelevant-is-transport-split
```
### Assuming the univalence axiom, type families are transport-split if and only if they are embeddings as maps
```agda
module _
{l1 l2 : Level} {A : UU l1} {B : A → UU l2}
where
is-emb-is-transport-split : is-transport-split B → is-emb B
is-emb-is-transport-split s =
is-emb-is-univalent (is-univalent-is-transport-split s)
is-transport-split-is-emb : is-emb B → is-transport-split B
is-transport-split-is-emb H =
is-transport-split-is-univalent (is-univalent-is-emb H)
```
### Transport-split type families satisfy equivalence induction
```agda
module _
{l1 l2 : Level} {A : UU l1} {B : A → UU l2}
(s : is-transport-split B)
where
is-torsorial-fam-equiv-is-transport-split :
{x : A} → is-torsorial (λ y → B x ≃ B y)
is-torsorial-fam-equiv-is-transport-split =
is-torsorial-fam-equiv-is-univalent (is-univalent-is-transport-split s)
dependent-universal-property-identity-system-fam-equiv-is-transport-split :
{x : A} →
dependent-universal-property-identity-system (λ y → B x ≃ B y) id-equiv
dependent-universal-property-identity-system-fam-equiv-is-transport-split =
dependent-universal-property-identity-system-is-torsorial
( id-equiv)
( is-torsorial-fam-equiv-is-transport-split)
```
## See also
- [Univalent type families](foundation.univalent-type-families.md)
- [Preunivalent type families](foundation.preunivalent-type-families.md)