This document discusses functions, their formal definitions, and types (injections, surjections, bijections) along with the pigeonhole principle and its applications. It includes examples and exercises related to these concepts, demonstrating their implications in counting and set theory. The document also touches on the generalized pigeonhole principle and explores the implications of these principles in social scenarios and subsets.