21 research outputs found
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 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.Comment: In Proceedings ACL2 2013, arXiv:1304.712
Formalized Proof Systems for Propositional Logic
We have formalized a range of proof systems for classical propositional logic (sequent calculus, natural deduction, Hilbert systems, resolution) in Isabelle/HOL and have proved the most important meta-theoretic results about semantics and proofs: compactness, soundness, completeness, translations between proof systems, cut-elimination, interpolation and model existence
Formally Verified Tableau-Based Reasoners for a Description Logic
Description Logics are a family of logics used to represent and reason
about conceptual and terminological knowledge. One of the most basic description
logics is ALC , used as a basis from which to obtain others. Description logics are
particularly important to provide a logical basis for the web ontology languages (such
as OWL) used in the Semantic Web. In order to increase the reliability of the Semantic
Web, formal methods can be applied, and in particular formal verification of its
reasoning services can be carried out. In this paper, we present the formal verification
of a tableau-based satisfiability algorithm for the logic ALC . The verification has
been completed in several stages. First, we develop an abstract formalization of
satisfiability-checking of ALC -concepts. Secondly, we define and formally verify a
tableau-based algorithm in which the order of rule application and branch selection
can be flexibly specified, using a methodology of refinements to transfer the main
properties from the ALC abstract formalization. Finally, we obtain verified and
executable reasoners from the algorithm via a process of instantiation.Ministerio de Ciencia e Innovación TIN2009-09492Junta de AndalucÃa TIC-0606
URSA: A System for Uniform Reduction to SAT
There are a huge number of problems, from various areas, being solved by
reducing them to SAT. However, for many applications, translation into SAT is
performed by specialized, problem-specific tools. In this paper we describe a
new system for uniform solving of a wide class of problems by reducing them to
SAT. The system uses a new specification language URSA that combines imperative
and declarative programming paradigms. The reduction to SAT is defined
precisely by the semantics of the specification language. The domain of the
approach is wide (e.g., many NP-complete problems can be simply specified and
then solved by the system) and there are problems easily solvable by the
proposed system, while they can be hardly solved by using other programming
languages or constraint programming systems. So, the system can be seen not
only as a tool for solving problems by reducing them to SAT, but also as a
general-purpose constraint solving system (for finite domains). In this paper,
we also describe an open-source implementation of the described approach. The
performed experiments suggest that the system is competitive to
state-of-the-art related modelling systems.Comment: 39 pages, uses tikz.st