# Mere embeddings
```agda
module foundation.mere-embeddings where
```
<details><summary>Imports</summary>
```agda
open import foundation.cantor-schroder-bernstein-escardo
open import foundation.embeddings
open import foundation.law-of-excluded-middle
open import foundation.mere-equivalences
open import foundation.propositional-truncations
open import foundation.universe-levels
open import foundation-core.propositions
open import order-theory.large-preorders
```
</details>
## Definition
```agda
mere-emb-Prop : {l1 l2 : Level} → UU l1 → UU l2 → Prop (l1 ⊔ l2)
mere-emb-Prop X Y = trunc-Prop (X ↪ Y)
mere-emb : {l1 l2 : Level} → UU l1 → UU l2 → UU (l1 ⊔ l2)
mere-emb X Y = type-Prop (mere-emb-Prop X Y)
is-prop-mere-emb :
{l1 l2 : Level} (X : UU l1) (Y : UU l2) → is-prop (mere-emb X Y)
is-prop-mere-emb X Y = is-prop-type-Prop (mere-emb-Prop X Y)
```
## Properties
### Types equipped with mere embeddings form a preordering
```agda
refl-mere-emb : {l1 : Level} (X : UU l1) → mere-emb X X
refl-mere-emb X = unit-trunc-Prop id-emb
transitive-mere-emb :
{l1 l2 l3 : Level} {X : UU l1} {Y : UU l2} {Z : UU l3} →
mere-emb Y Z → mere-emb X Y → mere-emb X Z
transitive-mere-emb g f =
apply-universal-property-trunc-Prop g
( mere-emb-Prop _ _)
( λ g' →
apply-universal-property-trunc-Prop f
( mere-emb-Prop _ _)
( λ f' → unit-trunc-Prop (comp-emb g' f')))
mere-emb-Large-Preorder : Large-Preorder lsuc (_⊔_)
type-Large-Preorder mere-emb-Large-Preorder l = UU l
leq-prop-Large-Preorder mere-emb-Large-Preorder = mere-emb-Prop
refl-leq-Large-Preorder mere-emb-Large-Preorder = refl-mere-emb
transitive-leq-Large-Preorder mere-emb-Large-Preorder X Y Z =
transitive-mere-emb
```
### Assuming excluded middle, if there are mere embeddings between `A` and `B` in both directions, then there is a mere equivalence between them
```agda
antisymmetric-mere-emb :
{l1 l2 : Level} {X : UU l1} {Y : UU l2} →
LEM (l1 ⊔ l2) → mere-emb X Y → mere-emb Y X → mere-equiv X Y
antisymmetric-mere-emb lem f g =
apply-universal-property-trunc-Prop f
( mere-equiv-Prop _ _)
( λ f' →
apply-universal-property-trunc-Prop g
( mere-equiv-Prop _ _)
( λ g' → unit-trunc-Prop (Cantor-Schröder-Bernstein-Escardó lem f' g')))
```