# Action on equivalences in type families over subuniverses

```agda
module foundation.action-on-equivalences-type-families-over-subuniverses where
```

<details><summary>Imports</summary>

```agda
open import foundation.action-on-identifications-functions
open import foundation.dependent-pair-types
open import foundation.equivalence-induction
open import foundation.subuniverses
open import foundation.universe-levels

open import foundation-core.commuting-squares-of-maps
open import foundation-core.contractible-types
open import foundation-core.equivalences
open import foundation-core.fibers-of-maps
open import foundation-core.function-types
open import foundation-core.identity-types
open import foundation-core.univalence
```

</details>

## Ideas

Given a [subuniverse](foundation.subuniverses.md) `P`, any family of types `B`
indexed by types of `P` has an
[action on equivalences](foundation.action-on-equivalences-functions.md)
obtained by using the [univalence axiom](foundation.univalence.md).

## Definitions

### The action on equivalences of a family of types over a subuniverse

```agda
module _
  { l1 l2 l3 : Level}
  ( P : subuniverse l1 l2) (B : type-subuniverse P  UU l3)
  where

  abstract
    unique-action-equiv-family-over-subuniverse :
      (X : type-subuniverse P) 
      is-contr
        ( fiber (ev-id-equiv-subuniverse P X  Y e  B X  B Y}) id-equiv)
    unique-action-equiv-family-over-subuniverse X =
      is-contr-map-ev-id-equiv-subuniverse P X  Y e  B X  B Y) id-equiv

  action-equiv-family-over-subuniverse :
    (X Y : type-subuniverse P)  pr1 X  pr1 Y  B X  B Y
  action-equiv-family-over-subuniverse X Y =
    equiv-eq  ap B  eq-equiv-subuniverse P

  compute-id-equiv-action-equiv-family-over-subuniverse :
    (X : type-subuniverse P) 
    action-equiv-family-over-subuniverse X X id-equiv  id-equiv
  compute-id-equiv-action-equiv-family-over-subuniverse X =
    ap (equiv-eq  ap B) (compute-eq-equiv-id-equiv-subuniverse P)
```

## Properties

### The action on equivalences of a family of types over a subuniverse fits in a commuting square with `equiv-eq`

We claim that the square

```text
                   ap B
        (X = Y) --------> (B X = B Y)
           |                    |
  equiv-eq |                    | equiv-eq
           ∨                    ∨
        (X ≃ Y) ---------> (B X ≃ B Y).
                     B
```

commutes for any two types `X Y : type-subuniverse P` and any family of types
`B` over the subuniverse `P`.

```agda
coherence-square-action-equiv-family-over-subuniverse :
  {l1 l2 l3 : Level} (P : subuniverse l1 l2) (B : type-subuniverse P  UU l3) 
  (X Y : type-subuniverse P) 
  coherence-square-maps
    ( ap B {X} {Y})
    ( equiv-eq-subuniverse P X Y)
    ( equiv-eq)
    ( action-equiv-family-over-subuniverse P B X Y)
coherence-square-action-equiv-family-over-subuniverse
  P B X .X refl =
  compute-id-equiv-action-equiv-family-over-subuniverse P B X
```