Mere embeddings

module foundation.mere-embeddings where
Imports
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-core.propositions
open import foundation-core.universe-levels

open import order-theory.large-preorders

Definition

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

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-Large-Preorder-Prop 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.

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')