70 likes | 169 Views
Thoughts on the Future of ATP. Wilfred J. Legato NSA. Historical Developments. Automated Theorem Proving (ATP) technology has not advanced significantly since the late 1980’s.
E N D
Thoughts on the Future of ATP Wilfred J. Legato NSA
Historical Developments • Automated Theorem Proving (ATP) technology has not advanced significantly since the late 1980’s. • There has been remarkable advances in propositional satisfiability (SAT) and equivalence checking (OBDD) algorithms over the past 10 years. • SAT and OBDD technology have enabled “push button” approaches to ATP.
Measuring Progress • Legato challenge 10 line multiply program- 1990: J Moore, 2 days using Nqthm- 2001: Matt Wilding, 15 hours using Vfaat- 2002: Robert Krug, 17 hours using ACL2 arithmetic3 proof library- 2005: Sandip Ray, 4 hours using J Moore’s inductive assertion method- 2007: Robert Boyer and Warren Hunt, 3 seconds using “g-functions” in ACL2
A Clarification • The push button solution to the 10 line multiply program only works for small size registers. • The previous 4 proofs work for arbitrary size registers, but require human guidance. • They also require development of a good modular arithmetic proof library.
Some Glimmers of Hope • Bob Boyer and Warren Hunt’s “g-functions” within ACL2 (push button at the bottom) • The advent of SMT solvers (push button at the top) • Modularization of ACL2 (an environment supporting experimentation with new ATP algorithms)
More Glimmers of Hope • Doug Smith’s work with SATware and proposed work on ATPware (a KIDS like treatment of the construction of SAT solvers and automated theorem provers) • Movement of the user community towards greater acceptance of ATP technology (success breeds success). • Finally, work on the “tool bus” concept emerging from the “Grand Challenge” (the right tool for the right job)
The Broader Environment • Theorems evolve from a broader environment- Floyd-Hoare (shallow embedment) - Interpreters (deep embedment) - Inductive Assertions (best of both) - Weakest Preconditions (greater flexibility) - The Logic as a Programming Language - Correct by Construction - Propositional Satisfiability (SMT, Predicate Abstraction, Model Checking)