A verified framework for symbolic execution in the ACL2 theorem prover

Mechanized theorem proving is a promising means of formally establishing facts about complex systems. However, in applying theorem proving methodologies to industrial-scale hardware and software systems, a large amount of user interaction is required in order to prove useful properties. In practic...

Full description

Bibliographic Details
Main Author: Swords, Sol Otis
Format: Others
Language:English
Published: 2011
Subjects:
Online Access:http://hdl.handle.net/2152/ETD-UT-2010-12-2210
id ndltd-UTEXAS-oai-repositories.lib.utexas.edu-2152-ETD-UT-2010-12-2210
record_format oai_dc
spelling ndltd-UTEXAS-oai-repositories.lib.utexas.edu-2152-ETD-UT-2010-12-22102015-09-20T16:57:31ZA verified framework for symbolic execution in the ACL2 theorem proverSwords, Sol OtisFormal verificationHardware verificationFormal methodsSymbolic executionSymbolic simulationTheorem provingMechanized theorem proving is a promising means of formally establishing facts about complex systems. However, in applying theorem proving methodologies to industrial-scale hardware and software systems, a large amount of user interaction is required in order to prove useful properties. In practice, the human user tasked with such a verification must gain a deep understanding of the system to be verified, and prove numerous lemmas in order to allow the theorem proving program to approach a proof of the desired fact. Furthermore, proofs that fail during this process are a source of confusion: the proof may either fail because the conjecture was false, or because the prover required more help from the user in order to reach the desired conclusion. We have implemented a symbolic execution framework inside the ACL2 theorem prover in order to help address these issues on certain problem domains. Our framework introduces a proof strategy that applies bit-level symbolic execution using BDDs to finite-domain problems. This proof strategy is a fully verified decision procedure for such problems, and on many useful problem domains its capacity vastly exceeds that of exhaustive testing. Our framework also produces counterexamples for conjectures that it determines to be false. Our framework seeks to reduce the amount of necessary user interaction in proving theorems about industrial-scale hardware and software systems. By increasing the automation available in the prover, we allow the user to complete useful proofs while understanding less of the detailed implementation of the system. Furthermore, by producing counterexamples for falsified conjectures, our framework reduces the time spent by the user in trying to determine why a proof failed.text2011-02-11T21:37:42Z2011-02-11T21:37:49Z2011-02-11T21:37:42Z2011-02-11T21:37:49Z2010-122011-02-11December 20102011-02-11T21:37:49Zthesisapplication/pdfhttp://hdl.handle.net/2152/ETD-UT-2010-12-2210eng
collection NDLTD
language English
format Others
sources NDLTD
topic Formal verification
Hardware verification
Formal methods
Symbolic execution
Symbolic simulation
Theorem proving
spellingShingle Formal verification
Hardware verification
Formal methods
Symbolic execution
Symbolic simulation
Theorem proving
Swords, Sol Otis
A verified framework for symbolic execution in the ACL2 theorem prover
description Mechanized theorem proving is a promising means of formally establishing facts about complex systems. However, in applying theorem proving methodologies to industrial-scale hardware and software systems, a large amount of user interaction is required in order to prove useful properties. In practice, the human user tasked with such a verification must gain a deep understanding of the system to be verified, and prove numerous lemmas in order to allow the theorem proving program to approach a proof of the desired fact. Furthermore, proofs that fail during this process are a source of confusion: the proof may either fail because the conjecture was false, or because the prover required more help from the user in order to reach the desired conclusion. We have implemented a symbolic execution framework inside the ACL2 theorem prover in order to help address these issues on certain problem domains. Our framework introduces a proof strategy that applies bit-level symbolic execution using BDDs to finite-domain problems. This proof strategy is a fully verified decision procedure for such problems, and on many useful problem domains its capacity vastly exceeds that of exhaustive testing. Our framework also produces counterexamples for conjectures that it determines to be false. Our framework seeks to reduce the amount of necessary user interaction in proving theorems about industrial-scale hardware and software systems. By increasing the automation available in the prover, we allow the user to complete useful proofs while understanding less of the detailed implementation of the system. Furthermore, by producing counterexamples for falsified conjectures, our framework reduces the time spent by the user in trying to determine why a proof failed. === text
author Swords, Sol Otis
author_facet Swords, Sol Otis
author_sort Swords, Sol Otis
title A verified framework for symbolic execution in the ACL2 theorem prover
title_short A verified framework for symbolic execution in the ACL2 theorem prover
title_full A verified framework for symbolic execution in the ACL2 theorem prover
title_fullStr A verified framework for symbolic execution in the ACL2 theorem prover
title_full_unstemmed A verified framework for symbolic execution in the ACL2 theorem prover
title_sort verified framework for symbolic execution in the acl2 theorem prover
publishDate 2011
url http://hdl.handle.net/2152/ETD-UT-2010-12-2210
work_keys_str_mv AT swordssolotis averifiedframeworkforsymbolicexecutionintheacl2theoremprover
AT swordssolotis verifiedframeworkforsymbolicexecutionintheacl2theoremprover
_version_ 1716821564914139136