Term-Level Reasoning in Support of Bit-blasting

  title={Term-Level Reasoning in Support of Bit-blasting},
  author={Sol Swords},
  • S. Swords
  • Published in ACL2 2 May 2017
  • Computer Science
GL is a verified tool for proving ACL2 theorems using Boolean methods such as BDD reasoning and satisfiability checking. In its typical operation, GL recursively traverses a term, computing a symbolic object representing the value of each subterm. In older versions of GL, such a symbolic object could use Boolean functions to compactly represent many possible values for integer and Boolean subfields, but otherwise needed to reflect the concrete structure of all possiblealues that its term might… 

New Rewriter Features in FGL

The new features that FGL's rewriter implements are described, the solutions to some technical problems that were encountered in their implementation are discussed, and the feasibility of adding these features to the ACL2 rewriter is assessed.

Verifying x86 instruction implementations

A current contribution of formal methods to the validation of modern x86 microprocessors at Centaur Technology is described, which focuses on proving correctness of instruction implementations, which includes the decoding of an instruction, its translation into a sequence of micro-operations, any subsequent execution of traps to microcode ROM, and the implementation of these micro- operations in execution units.

Balancing Automation and Control for Formal Verification of Microprocessors

The current status of formal verification at Centaur Technology is described and the main engine is described—a powerful symbolic simulator with rewriting capabilities that is integrated in a theorem prover and proven correct.



Bit-Blasting ACL2 Theorems

This work explains how to use GL, a framework for proving finite ACL2 theorems with BDD- or SAT-based reasoning, which makes it unnecessary to deeply understand why a property is true, and automates the process of admitting it as a theorem.

Efficient Rewriting of Operations on Finite Structures in ACL2

The deenitions of the access and update functions are somewhat subtle, complex, and ineeecient, but they return the expected values and the theorems exported are elegant and eecient for automatic, unconditional rewriting.

Fix Your Types

A principled approach to types is described that provides strong type safety and execution efficiency while avoiding type hypotheses, and a library is presented that automates this approach.

A robust machine code proof framework for highly secure applications

The AAMP7G architecture is summarized, the ACL2 model of the processor is detail, and the development of the compositional cutpoint method into a robust machine code proof framework is described.

Microcode Verification - Another Piece of the Microprocessor Verification Puzzle

Despite significant progress in formal hardware verification in the past decade, little has been published on the verification of microcode. Microcode is the heart of every microprocessor and is one

A verified framework for symbolic execution in the ACL2 theorem prover