anthem 1
1.0.0
解答セット プログラムを一次定理証明言語に翻訳する
注記
現在、 anthem
のバージョン 1 を参照していますが、これは Patrick Lühne によって構築され、現在は開発されていません。このリポジトリへのこれ以上のコミットは行われません。
Anthem の最新バージョンに興味がある場合は、新しいリポジトリをご覧ください。
anthem
ASP プログラム ( clingo
の入力言語) を Prover9 などの一次定理証明者の言語に翻訳します。
プログラムが仕様を実装していることを検証するには、 verify-program
コマンドを使用してanthem
を呼び出します。
$ anthem verify-program <プログラム ファイル> <仕様ファイル>...
なお、指定ファイルは複数指定することも可能です。これは、補題や公理を仮定や仕様から分離するのに役立ちます。
数値の平方根の下限を計算する例は、次のように再現できます。
$ anthem verify-program example/example-2.{lp,spec,lemmas}
中括弧表記は Bash の短縮形です。
$ anthem verify-program 例/example-2.lp 例/example-2.spec 例/example-2.lemmas
デフォルトでは、 anthem
翻訳された数式に対してクラーク補完を実行し、どの変数が整数であるかを検出し、いくつかの基本的な変換ルールを適用することで出力を簡素化します。
これらの処理ステップは、オプション--no-complete
、 --no-simplify
、および--no-detect-integers
を使用してオフにできます。
anthem
Rust のcargo
ツールチェーンを使用して構築されています。 Rust をインストールした後、次のようにanthem
構築できます。
$ git clone https://github.com/potassco/anthem.git $CDアンセム $ カーゴビルド --リリース
anthem
バイナリはtarget/release/
ディレクトリで利用できるようになります。あるいは、次のようにcargo
を使用してanthem
を呼び出すこともできます。
$ Cargo run -- verify-program <プログラム ファイル> <仕様ファイル>...
パトリック・リューネ