LP, the Larch Prover — Development History
LP was developed by Stephen J. Garland and John V. Guttag at the MIT Laboratory
for Computer Science, a predecessor of CSAIL, the MIT Computer Science and
Artificial Intelligence Laboratory. The initial implementation of LP was based
on Reve, a rewrite rule laboratory developed by Pierre Lescanne with assistance
from Randy Forgaard, David Detlefs, and Katherine Yelick.
Releases
Several versions, distinguished by their release dates, exist for the early
releases of LP.
Release 1.0, 1988-1990
The first release of LP extended Reve's term-rewriting system for equational
logic to a proof system for quantifier-free first-order logic. It provided
-
mechanisms for proofs by induction, cases, and contradiction,
-
user-defined deduction rules, and
-
unification and matching for commutative operators in addition to Reve's
facilities for associative-commutative operators.
Release 2.0, December 27, 1990
This release contained improvements to the code in Version 1.0. It also provided
-
a simpler and more uniform command syntax,
-
uniform mechanisms for naming, asserting, and proving all components of its
logical system,
-
hardwired axioms for logical operators, and
-
improved performance.
Release 2.1, August 21, 1991
This release cleaned up many of the features introduced in Release 2.0 and made
them more uniform.
Release 2.2, November 17, 1991
This release provided enhanced deductive mechanisms and better performance. It
is the one documented in A Guide to LP, the Larch Prover, by Stephen
J. Garland and John V. Guttag, published on December 31, 1991, as Report 82
by the System Research Center of the Digital Equipment Corporation.
Release 2.2a, June 4, 1992
This release provided an experimental implementation of conditional rewriting,
Release 3.1, December 30, 1994
Release 3.1 was a major new release that extended LP's proof system to one for
full mulstisorted first-order logic. For more details, see the lists of
-
features added in Release 3.1, ad
-
changes required in old proof scripts for use with
Release 3.1.
Release 3.1a, April 27, 1995
This release fixed some bugs in Release 3.1.
Release 3.1b, September 5, 1997, through January 28, 1999
Release 3.1b was the final official release of LP. It fixed
some bugs in Release 3.1a and added a few new features.
Support
LP's development was supported by the following grants from the National Science
Foundation and DARPA, the Defense Advanced Research Projects Agency. Additional
support was provided by the Systems Research Center of the Digital Equipment
Corporation.
- NSF CCR-8706652 (July 1, 1987 to December 31, 1989), ``Automated semantic
analysis of formal specifications.''
- NSF CCR-8910848 (July 15, 1989, to December 31, 1991), ``Formal
specification of program module interfaces.''
- NSF INT-9016780, US-France Cooperative Science Program (April 1, 1991, to
September 30, 1994), ''Integrating a theorem prover and a specification
environment.''
- DARPA N00014-92-J-1795 (January 1, 1992, to March 31, 1995), ``Practical
applications of formal specifications.''
- NSF CCR-9115797 (March 1, 1992, to August 31, 1995), ``Automated reasoning
in software engineering.''
- NSF CCR-9504248 (August 1, 1995, to July 31, 1998), ``Automated reasoning
in software engineering.''