80 likes | 312 Views
Automated Theorem Proving. Frederico Araujo CS6362 – Fall 2010. Outline. What is automated theorem proving? ATP in software engineering ATP software Case study. What is automated theorem proving?.
E N D
Automated Theorem Proving Frederico Araujo CS6362 – Fall 2010
Outline • What is automated theorem proving? • ATP in software engineering • ATP software • Case study
What is automated theorem proving? 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? • 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 • 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 • First order systems Otter, E, SPASS, Vampire,Waldmeister ... • Higher order systems HOL, PVS, ACL2, Coq, Nqthm … • Software Verification systems Spec#, KeY, …
Case study • PVS tutorial by John Rushby