# Effective maps for equivalence relations
```agda
module foundation.effective-maps-equivalence-relations where
```
<details><summary>Imports</summary>
```agda
open import foundation.surjective-maps
open import foundation.universe-levels
open import foundation-core.cartesian-product-types
open import foundation-core.equivalence-relations
open import foundation-core.equivalences
open import foundation-core.identity-types
```
</details>
## Idea
Consider a type `A` equipped with an equivalence relation `R`, and let
`f : A → X` be a map. Then `f` is effective if `R x y ≃ Id (f x) (f y)` for all
`x y : A`. If `f` is both effective and surjective, then it follows that `X`
satisfies the universal property of the quotient `A/R`.
## Definition
### Effective maps
```agda
is-effective :
{l1 l2 l3 : Level} {A : UU l1} (R : equivalence-relation l2 A) {B : UU l3}
(f : A → B) → UU (l1 ⊔ l2 ⊔ l3)
is-effective {A = A} R f =
(x y : A) → (f x = f y) ≃ sim-equivalence-relation R x y
```
### Maps that are effective and surjective
```agda
module _
{l1 l2 : Level} {A : UU l1} (R : equivalence-relation l2 A)
where
is-surjective-and-effective :
{l3 : Level} {B : UU l3} (f : A → B) → UU (l1 ⊔ l2 ⊔ l3)
is-surjective-and-effective f = is-surjective f × is-effective R f
```