defeasible prolog