PLATO: A Tool to Assist Programming as Term Rewriting and Therem Proving

In this paper we present PLATO, a tool designed for theory presentation construction, theorem proving and formula derivation. It was motivated by equational algebraic theory manipulation needs, nevertheless its aim is software development by program calculation. PLATO has applications in algebra boolean algebra, relation algebra, etc. and mathematical logic as a general framework for theorem proving under different logics . In the field of software development, we show its application in program calculi construction and in program development under these calculi. We will consider a programming calculus as being a theory presentation within a given logic. Thus, the task of constructing new calculi can be thought of as one of building new theory presentations. This is true for, in particular, programming calculi based on Relation Algebras, Functional Programming, Fork Algebras, Type Theory and the like. We will consider a theory presentation as a pair , where T is a similarity type, i.e., declaration of operation symbols with their arity, and 2" is a finite set of formulas constituting an axiomatization for that theory.