Frederico Araujo CS6362 – Fall 2010 Automated Theorem Proving
Outline 2 What is automated theorem proving? ATP in software engineering ATP software Case study
What is automated theorem proving? 3 Automated Theorem Proving (ATP) deals with the development of computer programs that show that some statement (the conjecture) is a logical consequence of a set of statements (the axioms and hypotheses)
What is automated theorem proving? 4
5 High-quality software design Formal method Use of formal logic system to produce precise formal statements Eliminates ambiguity (usually found in natural languages) Automatic or guided by user
ATP in software engineering 6 Requirements analysis and verification Software creation and verification Hardware verification Examples: communication protocols verification, algorithms, microprocessor verification, microcontrollers verification, requirements analysis and software specification, mission- critical, business-critical or safety-critical systems…
ATP software 7 First order systems Otter, E, SPASS, Vampire,Waldmeister... Higher order systems HOL, PVS, ACL2, Coq, Nqthm … Software Verification systems Spec#, KeY, …
Case study 8 PVS tutorial by John Rushby