I undestand Hall's theorem but I'm not sure how to apply it to problems. I have such problem which I believe needs to be solved using Halls' theorem.
Problem:
We have a group of n girls and m boys. Show that a necessary and sufficient condition for k girls to find a husband (inside the group) is that each r girls know minimum k+r-n boys.
This almost screams to use Hall's theorem but I'm not sure how to apply it.
Hall's theorem tells you something about finding a matching of size $n$ (i.e. a husband for all $n$ girls), while here you want to consider matchings of size at least $k$. The trick for applying Hall's theorem in this situation is to add $n-k$ new "boy" vertices, each of them connected to every "girl" vertex.
You should first check that a matching of size at least $k$ in the original graph can be extended to a matching of size $n$ in this new graph, and conversely, a matching of size $n$ in this graph gives a matching of size at least $k$ in the original graph. Then you can verify that the necessary and sufficient condition given is equivalent to Hall's condition in this "augmented" graph.
Do tell me if you need more help!