Text this: Techniques of Prolog programming with implementation of logical negation and quantified goals