Practical Non-monotonic Reasoning