Non-monotonicity in case-based reasoning and explanations with applications to legal reasoning