Function
Definition 1.17. Let S and T be sets. A function from S to T is a subset F ⊆ S × T such that for all s ∈ S, there exists a unique t ∈ T with (s, t) ∈ F.
| The function F is often denoted F : S → T. From now on, we write F(s) = t, or sometimes s ↦ t, to mean (s, t) ∈ F. For any t ∈ T, the preimage of t along F is the subset F⁻¹(t) := {s ∈ S | F(s) = t}. |
A function is called surjective, or a surjection, if for all t ∈ T, there exists s ∈ S with F(s) = t. A function is called injective, or an injection, if for all t ∈ T and s₁, s₂ ∈ S with F(s₁) = t and F(s₂) = t, we have s₁ = s₂. A function is called bijective if it is both surjective and injective.
module definitions.chapter1.Function where open import Data.Product using (Σ; Σ-syntax; _,_) open import Relation.Binary.PropositionalEquality using (_≡_) open import definitions.chapter1.Partition using (Subset) -- Preimage of t along F Preimage : {S T : Set} → (S → T) → T → Subset S Preimage F t = λ s → F s ≡ t -- A function F : S → T is surjective if for all t ∈ T, -- there exists s ∈ S with F(s) = t Surjective : {S T : Set} → (S → T) → Set Surjective {S} {T} F = ∀ (t : T) → Σ[ s ∈ S ] (F s ≡ t) -- A function F : S → T is injective if for all s₁, s₂ ∈ S -- with F(s₁) = t and F(s₂) = t, we have s₁ = s₂ Injective : {S T : Set} → (S → T) → Set Injective {S} F = ∀ {s₁ s₂ : S} → F s₁ ≡ F s₂ → s₁ ≡ s₂ -- A function is bijective if it is both surjective and injective Bijective : {S T : Set} → (S → T) → Set Bijective F = Surjective F × Injective F where open import Data.Product using (_×_)