Reasoning About Social Choice Functions