Domain-specific reasoning: Social contracts, cheating, and perspective change