Reflection in Constructive and Non-constructive Automated Reasoning