The 'literate' programming model is extended to include a
concept of mechanical transformation. A prototype tool, FLP
(Formal Literate Programming tool), has been developed
which uses this extended 'iterate' programming
model in both a formal program proof setting, and within
a formal (refinement) program development setting. In both
settings, FLP provides history, access to tools, and an easy-
to-use interface. FLP is a system with
•a tree structured revision control system allowing easy
access to an entire software development history,
•a unifying semi-formal model encompassing both
program proof and refinement, and
•a single simple mechanism for managing both formal
transformations on programs (proofs, tests, refinements)
and informal transformations (explanations).
In this paper, we outline the underlying semiformal model
for this extended 'literate' programming tool, briefly show
the system architecture, and demonstrate the tool's use
during a sample program development.