We motivate and present an architecture for problem solving where an abstraction
layer of "features" plays the key role in determining methods to apply. The system
is presented in the context of theorem proving with Isabelle, and we demonstrate
how this approach to encoding control knowledge is expressively different to
other common techniques. We look closely at two areas where the feature
layer may offer benefits to theorem proving — semi-automation and learning
—
and find strong evidence that in these particular domains, the approach shows
compelling promise. The system includes a graphical theorem-proving user
interface for Eclipse ProofGeneral and is available from the project web page,
http://feasch.heneveld.org