This document provides a proof of König's matching theorem. It begins by defining key terms like bipartite graphs, vertex cover, matching and maximum matching. It then states König's theorem - that for any bipartite graph G, the maximum cardinality of a matching n(G) equals the minimum cardinality of a vertex cover t(G). The proof considers G to be a minimal counterexample and examines different cases like if G is disconnected, a path or cycle. It ultimately arrives at a contradiction, showing that the assumption n(G)<t(G) is false, proving König's theorem that n(G)=t(G) for bipartite graphs.