This document defines and describes different types of functions: - A function relates each element in the domain to exactly one element in the codomain. Its graph intersects each vertical line once. - An injective function relates each codomain element to at most one domain element. Its graph intersects each horizontal line at most once. - A bijective function relates each codomain element to exactly one domain element. Its graph intersects each horizontal line exactly once. - A surjective function relates each codomain element to at least one domain element. Its graph intersects each horizontal line at least once.