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