Supporting students' work in a formal system: MacPICT

MacPICT is an interactive program written in LPA Prolog which has encoded within it the rules of Martin-Lof's constructive type theory (CTT), a formal system based on the constructive or intuitionistic mathematics of Brouwer, Heyting and others. It allows us to specify and express any total, computable function, so from a computer science point of view we can write both specifications and programs, along with the derivations which lead from one to the other, in a single language. MacPICT is a reconstruction of PICT [Ham92] and is intended to support the teaching of CTT. It has been developed and improved over the last five years, during which time it has been used to support teaching in an M.Sc. course on CTT at QMW. Many of the developments and improvements were suggested by students since they used the system to work on substantial courseworks. As we shall see, MacPICT can be used to assist in the development of derivations in CTT and so it is called a derivation assistant (DA). In this paper I show how MacPICT can be used for supporting derivations in CTT and consider what current experience suggests for future improvement. The examples in this paper will not require any knowledge of CTT since the meaning will either be clear to anyone with experience of logic and programming notations in general or will be explained as necessary.