問題タブ [theorem-proving]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
matrix - Isabelle: マトリックスの操作方法
定理証明者の Isabelle に習い始めたのは 2~3 週間ほど前です。私はまだまったくの初心者で、チュートリアル「Isabelle/HOL でのプログラミングと証明」に取り組みました。
これまでに見つけた行列に関する唯一の助けは、HOL ライブラリのソース コードを調べることでした。
次に、行列に関するプロパティを証明する方法を学びたいと思います。行列のラムダ構文は、私にとってまだ新しいものです。Isabelle で行列を使用するためのチュートリアルまたは基本/中間の例はありますか?
matrix - Isabelle: 定数因子を含む行列を転置します
私のイザベル理論では、定数係数を持つ行列があります。
転置行列を計算できます。
私の目には、後者は同等である必要があります
の定義によりtranspose
。しかし、これは真実ではありません。ここで私のエラーは何ですか?
ちなみに、転置の定義は次のとおりです。
coq - Coq: List In 帰納の問題
私は Coq を初めて使用しますが、いくつかの努力により、さまざまな帰納補題を証明することができました。ただし、次の帰納的定義を使用するすべての演習で行き詰まります。
私が得た最も遠いものは、次の補題でした:
次の 2 つの補題は、最初のステップを通過できませexists
んintros
。
どんな助けでも大歓迎です!
isabelle - Isabelle: Sledgehammer は証明を見つけるが失敗する
多くの場合sledgehammer
、証明を見つけるという問題が発生しますが、それを挿入しても終了しません。sledgehammer
Isabelle の最も重要な部分の 1 つだと思いますが、証明が失敗すると面倒になります。
Sledgehammerのチュートリアルには、「なぜ Metis は証明の再構築に失敗するのか?」という小さな章があります。
それはリストします:
isar_proofs
各ステップが によって正当化される段階的な Isar 証明を取得するオプションを試してくださいmetis
。ステップはかなり小さいので、metis
再生できる可能性が高くなります。smt
の代わりに証明方法を試してくださいmetis
。通常はより強力ですが、証明を再生するために Z3 を使用できるようにするか、SMT ソルバーを信頼するか、証明書を使用する必要があります。- 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、 、、、、 、を介して、必要な事実を渡しながら、
blast
または証明メソッドを試してください。auto
unfolding
using
intro:
elim:
dest:
simp:
問題は、最初のオプションでは証明がより冗長になり、手動の介入が必要になることです。2 番目のオプションはほとんど機能しません。
では、3 番目のオプションはどうでしょうか。適用できる簡単なヒューリスティックはありますか?
unfolding
とはどう違いusing
ますか?また、失敗した証明からintro:
、elim:
、およびを使用する方法に関するベスト プラクティスはありますか?dest:
metis
部分的な例
証明の最初の行は取るに足らないように見えるので、削除したいと思います。最初の行を削除してsledgehammer
も証明は見つかりますが、この見つかった証明は失敗します (終了しません)。
matrix - Isabelle 行列演算: ライブラリ内の det_linear_row_setsum の表記が異なる
最近、イザベルの定理証明器を使い始めました。別の補題を証明したいので、HOL ライブラリにある補題「det_linear_row_setsum」で使用されているものとは異なる表記法を使用したいと思います。より具体的には、「χ i 」ではなく「χ ij 表記」を使用したいと考えています。しばらくの間、同等の式を定式化しようとしてきましたが、まだわかりませんでした。
..
prolog - 自動定理証明
これを証明できる自動定理証明システムを探しています。
クロコダイルは男の子供を連れて行きました。男はワニに自分の子供を食べないように頼んだ. しかし、クロコダイルは言いました。
彼の分析ソリューションは次のようになります。
x - ワニは子供を食べる y - 男性 答え: ワニは子供を食べる
~ は等しいことを意味します。意味しない、-> 意味する、+ OR;
ですから、答えは男性が言わなければならないということです:「あなたは子供を食べるつもりはありません」。
さて、ここにはたくさんのシステムがリストされています: http://en.wikipedia.org/wiki/Automated_theorem_proving
私はそれらのうちの5-6を試しましたが、ここで何をしているのか本当に理解できませんでした. この定理をそれらの中で形式化して、その最初の部分に入ることができるようにする方法:
((x~y)->!x) and ((x XOR y)->x)
そして答えを得る
y
出力として。
少なくともどのシステムが自動的にそれを行うことができるか、さらにヒントを教えてください。
よろしく、コンスタンチン。
compilation - c++ プログラムで z3 API を使用する際にヘルプが必要です
C++ プログラムで z3 API を使用したいと考えています。どのヘッダー ファイルを含めるか、z3 関数などを含むプログラムを実行する方法を考えています。
z3 ソース コードに付属するファイルを確認しました。example.cpp
このファイルを実行するmake examples
には、内部でコマンドを実行するビルド ディレクトリで実行する必要がありました。
プログラムを作成する場合、プログラムをコンパイルする../src/api
必要があるたびに、このようにコンパイルする必要がありますか (lib ファイルをインクルードしてリンクします)。
私を助けてください、私は以前に z3 を使用したことがありません。どんな助けでも大歓迎です。:)
c++ - c++ 用の z3 定理証明 API についてどこで学べますか?
c++ 用の z3 API と、それらを c++ プログラムで使用する方法を学びたいです。チュートリアルを見つけようとしましたが、見つかりませんでした。どこからそれを学ぶことができますか?チュートリアルか何か?ありがとう。