21 research outputs found

    Verified AIG Algorithms in ACL2

    Full text link
    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

    Get PDF
    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

    Get PDF
    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

    Full text link
    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
    corecore