Computing with logic : logic programming with Prolog. - Maier, David; Warren, David S.