この記事は Kobe University Advent Calendar 2017 - Adventar 17日目の記事です。 1年ぐらい前にC3というSMTソルバをC言語でスクラッチから作ったので、その話でもします。 よりによってなぜSMTソルバをCで書いたかというと、若気の至りでハイパーバイザに組み込んだりして遊んでたからです。 ゲストシステムの検証をランタイムにしてくれる超軽量なハイパーバイザあったらカッコイイじゃないですか。 という割と適当な理由で作ったんですが、労力に対する成果があまりにも見合わなさすぎて、今はアプローチを変えています。 そういうわけで過去の遺物から生まれたC言語製SMTソルバC3なのですが、このままお蔵入りさせるのも何なのでコードの解説とかSMTソルバがどうやって動いてるのかみたいな話をしてみます。 あ あと、私は一介の情報系学生で論理学徒ではないので、ところ