Mechanical Reasoning