An introduction to strategy-proof social choice functions