\begin{code}
{-# OPTIONS --cubical --safe --postfix-projections #-}

module Function.Injective.Base where

open import Level
open import Path
open import Data.Sigma

Injective : (A  B)  Type _
\end{code}
%<*injective>
\begin{code}
Injective f =  x y  f x  f y  x  y
\end{code}
%</injective>
\begin{code}

infixr 0 _↣_
_↣_ : Type a  Type b  Type (a ℓ⊔ b)
\end{code}
%<*injection>
\begin{code}
A  B = Σ[ f  (A  B) ] Injective f
\end{code}
%</injection>
\begin{code}
refl-↣ : A  A
refl-↣ .fst x = x
refl-↣ .snd x y x≡y = x≡y
\end{code}