## A Computational Model of Lakatos-style Reasoning

##### Abstract

Lakatos outlined a theory of mathematical discovery and justification,
which suggests ways in which concepts, conjectures and proofs
gradually evolve via interaction between mathematicians. Different
mathematicians may have different interpretations of a conjecture,
examples or counterexamples of it, and beliefs regarding its value or
theoremhood. Through discussion, concepts are refined and conjectures
and proofs modified. We hypothesise that: (i) it is possible to
computationally represent Lakatos's theory, and (ii) it is
useful to do so. In order to test our hypotheses we have developed a
computational model of his theory.
Our model is a multiagent dialogue system. Each agent has a copy of a
pre-existing theory formation system, which can form concepts and make
conjectures which empirically hold for the objects of interest
supplied. Distributing the objects of interest between agents means
that they form different theories, which they communicate to each
other. Agents then find counterexamples and use methods identified by
Lakatos to suggest modifications to conjectures, concept definitions
and proofs.
Our main aim is to provide a computational reading of Lakatos's
theory, by interpreting it as a series of algorithms and implementing
these algorithms as a computer program.
This is the first systematic automated realisation of Lakatos's
theory. We contribute to the computational philosophy of science by
interpreting, clarifying and extending his theory. We also contribute
by evaluating his theory, using our model to test hypotheses about it,
and evaluating our extended computational theory on the basis of
criteria proposed by several theorists. A further contribution is to
automated theory formation and automated theorem proving. The process
of refining conjectures, proofs and concept definitions requires a
flexibility which is inherently useful in fields which handle
ill-specified problems, such as theory formation. Similarly, the
ability to automatically modify an open conjecture into one which can
be proved, is a valuable contribution to automated theorem proving.