Programming with Higher-Order Logic - Miller, Dale (Cambridge University Press, 2012)