6 The Sharing of Structure in Theorem proving Programs