Published online by Cambridge University Press: 06 January 2004
$\lambda$Prolog is knownto be well-suited for expressing and implementing logics andinference systems. We show that lemmas and definitions in suchlogics can be implemented with a great economy of expression. Weencode a higher-order logic using an encoding that maps both termsand types of the object logic (higher-order logic) to terms of themetalanguage ($\lambda$Prolog). We discuss both the Terzo andTeyjus implementations of $\lambda$Prolog. We also encode the same logicin Twelf and compare the features of these two metalanguages for ourpurposes.