{-# OPTIONS --cubical --safe #-} module Function.Surjective.Base where open import Path open import Function.Fiber open import Level open import HITs.PropositionalTruncation open import Data.Sigma Surjective : (A → B) → Type _ Surjective f = ∀ y → ∥ fiber f y ∥ SplitSurjective : (A → B) → Type _ SplitSurjective f = ∀ y → fiber f y infixr 0 _↠!_ _↠_ _↠!_ : Type a → Type b → Type (a ℓ⊔ b) A ↠! B = Σ (A → B) SplitSurjective _↠_ : Type a → Type b → Type (a ℓ⊔ b) A ↠ B = Σ (A → B) Surjective