conclude(true):-!. conclude((A, B)):-!, conclude(A), conclude(B). conclude(A):-prove(A). conclude(A):-default((A:-B)), conclude(B), \+ contradiction(A). prove(true):-!. prove((A, B)):-!, prove(A), prove(B). prove(A):-rule((A:-B)), prove(B). contradiction(\+ A):-!, prove(A). contradiction(A):-prove(\+ A). default((\+ flies(X):-mammal(X))). default((flies(X):-bat(X))). default((\+ flies(X):-dead(X))). rule((mammal(X):-bat(X))). rule((bat(dracula):-true)). rule((dead(dracula):-true)).