Verified AIG Algorithms in ACL2

And-Inverter Graphs (AIGs) are a popular way to represent Boolean functions (like circuits). AIG simplification algorithms can dramatically reduce an AIG, and play an important role in modern hardware verification tools like equivalence checkers. In practice, these tricky algorithms are implemented...

Full description

Bibliographic Details
Main Authors: Jared Davis, Sol Swords
Format: Article
Language:English
Published: Open Publishing Association 2013-04-01
Series:Electronic Proceedings in Theoretical Computer Science
Online Access:http://arxiv.org/pdf/1304.7861v1
id doaj-e1385f7e3652413291735382b5e7311d
record_format Article
spelling doaj-e1385f7e3652413291735382b5e7311d2020-11-24T23:38:13ZengOpen Publishing AssociationElectronic Proceedings in Theoretical Computer Science2075-21802013-04-01114Proc. ACL2 20139511010.4204/EPTCS.114.8Verified AIG Algorithms in ACL2Jared DavisSol SwordsAnd-Inverter Graphs (AIGs) are a popular way to represent Boolean functions (like circuits). AIG simplification algorithms can dramatically reduce an AIG, and play an important role in modern hardware verification tools like equivalence checkers. In practice, these tricky algorithms are implemented with optimized C or C++ routines with no guarantee of correctness. Meanwhile, many interactive theorem provers can now employ SAT or SMT solvers to automatically solve finite goals, but no theorem prover makes use of these advanced, AIG-based approaches. We have developed two ways to represent AIGs within the ACL2 theorem prover. One representation, Hons-AIGs, is especially convenient to use and reason about. The other, Aignet, is the opposite; it is styled after modern AIG packages and allows for efficient algorithms. We have implemented functions for converting between these representations, random vector simulation, conversion to CNF, etc., and developed reasoning strategies for verifying these algorithms. Aside from these contributions towards verifying AIG algorithms, this work has an immediate, practical benefit for ACL2 users who are using GL to bit-blast finite ACL2 theorems: they can now optionally trust an off-the-shelf SAT solver to carry out the proof, instead of using the built-in BDD package. Looking to the future, it is a first step toward implementing verified AIG simplification algorithms that might further improve GL performance.http://arxiv.org/pdf/1304.7861v1
collection DOAJ
language English
format Article
sources DOAJ
author Jared Davis
Sol Swords
spellingShingle Jared Davis
Sol Swords
Verified AIG Algorithms in ACL2
Electronic Proceedings in Theoretical Computer Science
author_facet Jared Davis
Sol Swords
author_sort Jared Davis
title Verified AIG Algorithms in ACL2
title_short Verified AIG Algorithms in ACL2
title_full Verified AIG Algorithms in ACL2
title_fullStr Verified AIG Algorithms in ACL2
title_full_unstemmed Verified AIG Algorithms in ACL2
title_sort verified aig algorithms in acl2
publisher Open Publishing Association
series Electronic Proceedings in Theoretical Computer Science
issn 2075-2180
publishDate 2013-04-01
description And-Inverter Graphs (AIGs) are a popular way to represent Boolean functions (like circuits). AIG simplification algorithms can dramatically reduce an AIG, and play an important role in modern hardware verification tools like equivalence checkers. In practice, these tricky algorithms are implemented with optimized C or C++ routines with no guarantee of correctness. Meanwhile, many interactive theorem provers can now employ SAT or SMT solvers to automatically solve finite goals, but no theorem prover makes use of these advanced, AIG-based approaches. We have developed two ways to represent AIGs within the ACL2 theorem prover. One representation, Hons-AIGs, is especially convenient to use and reason about. The other, Aignet, is the opposite; it is styled after modern AIG packages and allows for efficient algorithms. We have implemented functions for converting between these representations, random vector simulation, conversion to CNF, etc., and developed reasoning strategies for verifying these algorithms. Aside from these contributions towards verifying AIG algorithms, this work has an immediate, practical benefit for ACL2 users who are using GL to bit-blast finite ACL2 theorems: they can now optionally trust an off-the-shelf SAT solver to carry out the proof, instead of using the built-in BDD package. Looking to the future, it is a first step toward implementing verified AIG simplification algorithms that might further improve GL performance.
url http://arxiv.org/pdf/1304.7861v1
work_keys_str_mv AT jareddavis verifiedaigalgorithmsinacl2
AT solswords verifiedaigalgorithmsinacl2
_version_ 1725517570348417024