Deductive and Declarative Programming by Peter Padawitz