SMTChecker and SMT Solvers: Exploring Formal Verification One Step at a Time

Cryptocurrency News and Public Mining Pools

SMTChecker and SMT Solvers: Exploring Formal Verification One Step at a Time

In this blog post we take over from where we left in our previous blog post – Formal Verification Made Easy with SMTChecker and use the extracted SMTLIB2 representation with a different SMT solver. We will use “assert” verification target to showcase the whole process. But first, you might be thinking there are already 2 SMT solvers integrated with SMTChecker, Z3 and CVC4 (BTW, now there are 3 SMT solvers starting from solc 0.8.18!). Why do we even need a different SMT solver? Also, what are SMT solvers anyway?

What is an SMT Solver? SMT (Satisfiability Modulo Theories) solvers are automated reasoning tools that can determine the satisfiability of logical formulas that are expressed in a language that combines Boolean logic and various theories (such as arithmetic, arrays, bit-vectors, etc.). In other words, SMT solvers determine whether a given logical formula can be true or false based on a set of logical and mathematical rules.

SMT solvers are used in various applications such as software verification, formal verification of hardware designs, optimization, and automated theorem proving. They are highly effective in solving complex logical problems, as they can make use of efficient algorithms, heuristics, and decision procedures to explore the space of possible solutions.

Read more -> SMTChecker and SMT Solvers: Exploring Formal Verification One Step at a Time

submitted by /u/hexarobot
[link] [comments]