Before revision:  Hall's theorem gives a necessary and sufficient condition for a bipartite graph to have a saturating matching , meaning every vertex in one set is matchedto some vertex in the other in a one-to-one correspondence. When we imagine vertices as agents and let them have preferences over other vertices, we have the classic stable marriage problem introduced by Gale and Shapley, who showed that one can always find a matching that is stable with respect to agent's preferences. These two results often clash: saturating matchings are not always stable, and stable matchings are not always saturating. I prove a simple necessary and sufficient condition for every stable matching being saturating for one side. I show that this result subsumes and generalizes some previous theorems in the matching literature. I find a necessary and sufficient condition for stable matchingsbeing saturating on both sides , also known as perfect matchings.
After revision:  Hall's theorem gives a necessary and sufficient condition for a bipartite graph to have a saturating matching , for all possible preferences. I extend my analysis to perfect stable matchings, where every agent on both sides , also known as perfect matchings.