##### Abstract

In spite of many years of research into mechanical assistance for mathematics
it is still much more difficult to construct a proof on a machine than on
paper. Of course this is partly because, unlike a proof on paper, a machine
checked proof must be formal in the strictest sense of that word, but it is
also because usually the ways of going about building proofs on a machine
are limited compared to what a mathematician is used to. This thesis looks
at some possible extensions to the range of tools available on a machine
that might lend a user more flexibility in proving theorems, complementing
whatever is already available.

In particular, it examines what is possible in a framework theorem
prover. Such a system, if it is configured to prove theorems in a particular
logic T, must have a formal description of the proof theory of T written
in the framework theory F of the system. So it should be possible to use
whatever facilities are available in F not only to prove theorems of T, but
also theorems about T that can then be used in their turn to aid the user
in building theorems of T.

The thesis is divided into three parts. The first describes the theory
FS₀, which has been suggested by Feferman as a candidate for a framework
theory suitable for doing meta-theory. The second describes some experiments with FS₀, proving meta-theorems. The third describes an experiment
in extending the theory PRA, declared in FS₀, with a reflection facility.

More precisely, in the second section three theories are formalised:
propositional logic, sorted predicate logic, and the lambda calculus (with
a deBruijn style binding). For the first two the deduction theorem and
the prenex normal form theorem are respectively proven. For the third, a
relational definition of beta-reduction is replaced with an explicit function.

In the third section, a method is proposed for avoiding the work involved
in building a full Godel style proof predicate for a theory. It is suggested
that the language be extended with quotation and substitution facilities directly, instead of providing them as definitional extensions. With this, it
is possible to exploit an observation of Solovay's that the Lob derivability
conditions are sufficient to capture the schematic behaviour of a proof
predicate. Combining this with a reflection schema is enough to produce
a non-conservative extension of PRA, and this is demonstrated by some
experiments.