SAT solver が周りでほのかに流行っている(いた?)ので,個人的には SAT solver よりも断然便利な SMT solver について書いてみようと思いたった. SMT って? SMT は Satisfiable Modulo Theories の略で,SAT だと命題変数を並べて CNF で記述しなければいけないところを,int とか,プログラムで使うような変数が扱える上,述語が使える. なので一般に記述量が減り,人間に(SAT問題よりは)読みやすくなる傾向にあると思う. SMT Solver SMT Solver については http://combination.cs.uiowa.edu/smtlib/ でいろいろ見つかるけれど,ここでは The Yices SMT Solver を使ってみる. 環境準備 Mac OS X Leopard Yices 4.2.2 例題 S