Theorem Proving In Higher Order Logics by John Harrison, Yves Bertot & Andre Hirschowitz