Logical frameworks and meta-languages are intended as a common substrate for
representing and implementing a wide variety of logics and formal systems. Their
definition and implementation have been the focus of considerable work over the
last decade. At the heart of this work is a quest for generality: A logical framework
provides a basis for capturing uniformities across deductive systems and support
for implementing particular systems. Similarly a meta-language supports reasoning
about and using languages.
Logical frameworks have been based on a variety of different languages including
higher-order logics, type theories with dependent types, linear logic, and modal logic.
Techniques of representation of logics include higher-order abstract syntax, inductive
definitions or some form of equational or rewriting logic in which substitution is
explicitly encoded.
Examples of systems that implement logical frameworks include Alf, Coq, NuPrl,
HOL, Isabelle, Maude, lambda-Prolog and Twelf. An active area of research in
such systems is the study of automated reasoning techniques. Current work includes
the development of various automated procedures as well as the investigation of
rewriting tools that use reflection or make use of links with systems that already have
sophisticated rewriting systems. Program extraction and optimization are additional
topics of ongoing work.