Martin Escardo, 26 January 2018. Moved from the file TotallySeparated 22 August 2024. \begin{code} {-# OPTIONS --safe --without-K #-} module Apartness.Morphisms where open import Apartness.Definition open import MLTT.Spartan open import UF.FunExt open import UF.Subsingletons open import UF.Subsingletons-FunExt \end{code} A map is called strongly extensional if it reflects apartness. In the category of apartness types, the morphisms are the strongly extensional maps. \begin{code} is-strongly-extensional : ∀ {𝓣} {X : 𝓤 ̇ } {Y : 𝓥 ̇ } → (X → X → 𝓦 ̇ ) → (Y → Y → 𝓣 ̇ ) → (X → Y) → 𝓤 ⊔ 𝓦 ⊔ 𝓣 ̇ is-strongly-extensional _♯_ _♯'_ f = ∀ x x' → f x ♯' f x' → x ♯ x' being-strongly-extensional-is-prop : Fun-Ext → {X : 𝓤 ̇ } {Y : 𝓥 ̇ } → (_♯_ : X → X → 𝓦 ̇ ) → (_♯'_ : Y → Y → 𝓣 ̇ ) → is-prop-valued _♯_ → (f : X → Y) → is-prop (is-strongly-extensional _♯_ _♯'_ f) being-strongly-extensional-is-prop fe _♯_ _♯'_ ♯p f = Π₃-is-prop fe (λ x x' a → ♯p x x') preserves : ∀ {𝓣} {X : 𝓤 ̇ } {Y : 𝓥 ̇ } → (X → X → 𝓦 ̇ ) → (Y → Y → 𝓣 ̇ ) → (X → Y) → 𝓤 ⊔ 𝓦 ⊔ 𝓣 ̇ preserves R S f = ∀ {x x'} → R x x' → S (f x) (f x') \end{code}