{-# OPTIONS --cubical --safe #-}
module Function.Injective.Properties where
open import Level
open import Path
open import Data.Sigma
open import Function.Injective.Base
open import Relation.Nullary.Decidable
open import Relation.Nullary.Discrete
open import Function
Discrete-pull-inj : A ↣ B → Discrete B → Discrete A
Discrete-pull-inj (f , inj) _≟_ x y =
case (f x ≟ f y) of
λ { (no ¬p) → no (¬p ∘ cong f)
; (yes p) → yes (inj x y p) }
inject-contrapositive : (f : A → B) → Injective f → ∀ x y → x ≢ y → f x ≢ f y
inject-contrapositive f inj x y x≢y fx≡fy = x≢y (inj x y fx≡fy)