この記事は Kobe University Advent Calendar 2017 - Adventar 17日目の記事です。 1年ぐらい前にC3というSMTソルバをC言語でスクラッチから作ったので、その話でもします。 よりによってなぜSMTソルバをCで書いたかというと、若気の至りでハイパーバイザに組み込んだりして遊んでたからです。 ゲストシステムの検証をランタイムにしてくれる超軽量なハイパーバイザあったらカッコイイじゃないですか。 という割と適当な理由で作ったんですが、労力に対する成果があまりにも見合わなさすぎて、今はアプローチを変えています。 そういうわけで過去の遺物から生まれたC言語製SMTソルバC3なのですが、このままお蔵入りさせるのも何なのでコードの解説とかSMTソルバがどうやって動いてるのかみたいな話をしてみます。 あ あと、私は一介の情報系学生で論理学徒ではないので、ところ
![SAT/SMTソルバを自作してみる話 - るくすの日記 ~ Out_Of_Range ~](https://cdn-ak-scissors.b.st-hatena.com/image/square/1e29b1b8f5bea7a7fd3087c84e5c43bc5bf5803c/height=288;version=1;width=512/https%3A%2F%2Fcdn-ak.f.st-hatena.com%2Fimages%2Ffotolife%2FR%2FRKX1209%2F20171216%2F20171216230746.png)