{-# OPTIONS --type-in-type #-}
open import NeilPrelude
module SubSet where
SubSet : Set → Set
SubSet A = A → Set
Image : {A B : Set} → (f : A → B) → SubSet B
Image {A} f b = Σ[ a ∶ A ] (f a ≡ b)
SubImage : {A B : Set} → (f : A → B) → SubSet A → SubSet B
SubImage {A} f P b = Σ[ a ∶ A ] (P a × f a ≡ b)
SubSetEq : {A : Set} → SubSet A → SubSet A → Set
SubSetEq {A} P Q = (a : A) → P a ↔ Q a