This dissertation focuses on two subjects in formal
verification. The first subject is the development
of methods and tools for the formal verification of
compilers. We offer the Translation Validation
approach, according to which the translation of the
compiler is validated after each run. The evidence
from applying translation validation to two
compilers proves that this approach has some strong
advantages over the more traditional formal
verification of the compiler itself. The research
includes several new techniques for handling
industrial-size programs, among them a new decision
procedure for equality logic. The second subject is
the development of various optimizations to SAT
algorithms, which exploit the unique structure of
formulas originating from Bounded Model Checking of
invariance properties. The dissertation is organized
in the form of an edited collection of five published
articles, and an overview in the beginning.
verification. The first subject is the development
of methods and tools for the formal verification of
compilers. We offer the Translation Validation
approach, according to which the translation of the
compiler is validated after each run. The evidence
from applying translation validation to two
compilers proves that this approach has some strong
advantages over the more traditional formal
verification of the compiler itself. The research
includes several new techniques for handling
industrial-size programs, among them a new decision
procedure for equality logic. The second subject is
the development of various optimizations to SAT
algorithms, which exploit the unique structure of
formulas originating from Bounded Model Checking of
invariance properties. The dissertation is organized
in the form of an edited collection of five published
articles, and an overview in the beginning.