On conflict-driven reasoning