Reasoning and Error Correction