問題タブ [isabelle]
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.
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 表記」を使用したいと考えています。しばらくの間、同等の式を定式化しようとしてきましたが、まだわかりませんでした。
..
isabelle - Isabelle 理論の HTML バージョンを生成する方法
という名前の Isabelle 理論ファイルがありますJohn.thy
。友人に見せたいのですが、友人は Isabelle を持っておらず、生の.thy
ファイルを読むのは簡単ではありません。Isabelle ライブラリ (このようなもの: http://isabelle.in.tum.de/library/HOL/Finite_Set.html ) で、かなり構文が強調表示されている Web ページをいくつか見たことがあります。そのように。
では、どうやって作ることができJohn.html
ますか?私はドキュメンテーションを見てきましたが、すべてのビルドファイルやメイクファイルなど、かなり恐ろしく難しいように見えます。これを行う最も簡単な方法を親切な魂が説明できますか?
isabelle - レコード タイプが特定のクラスに属していることを確認する
というレコード タイプを作成しgraph
、適切な「のサブグラフである」関係を定義しました。ord
グラフのセットとサブグラフの関係が一緒になって順序を形成すること、つまりクラスのインスタンスであることを示したいと思います。しかし、私はそれを機能させることができません。これが私の最小限の作業例です:
エラーが発生します:
Type unification failed: No type arity graph_ext :: ord"
instantiation graph :: ord
や などを入力してみinstantiation graph_ext :: ord
ましたが、何もうまくいかないようです。何か案は?
isabelle - Isabelle HTML ドキュメントの生成 *証明なし*
イザベル理論 (HOL セッションなど) の HTML ドキュメントを生成したいのですが、証明は含めません。
つまり、 http://isabelle.in.tum.de/library/HOL/Nat.htmlのようなページを作成したい のですが、たとえば、
私だけが見たい
その理由は、利用可能な定理を調べるために HTML ページを使用しているからですが、その場合、証明は気を散らすだけです。(PDF を生成するときにプルーフを省略できることは知っていますが、特に HTML ドキュメントに興味があります。)
vector - Isabelle: ベクトルの最大値
自然数のベクトルの最大値を見つけたいです。ただし、ベクトル (つまり、「vec」) は、セットまたはリストとは異なる型です。vec の型のレベリングやリフティング、再帰関数の定義など、うまくいかないアイデアをいくつか考えました。
ベクトルの最大値を取得するために提案する解決策は何ですか?
solver - solve_direct によって提案されたルールを使用するにはどうすればよいですか? ((ルール…)によって常に機能するとは限りません)
ときどき<statement> solve_direct
(通常は を介して呼び出し<statement> try
ます) は多数のライブラリ定理をリストし、「現在の目標は次の方法で直接解決できます: …」と述べています。
<theorem>
を の検索結果の 1 つとすると、solve_direct
ほとんどの場合、 を証明でき<statement> by (rule theorem)
ます。
ただし、そのような証明が受け入れられない場合があり、その結果、「最初の証明方法を適用できませんでした」というエラー メッセージが表示されます。
によって見つかった定理を再利用するための一般的な別の手法はありsolve_direct
ますか?
それとも個々の状況によるのでしょうか?最小限の例を作成して、この質問に添付することができます。
isabelle - Isabelle でクイック アンド ダーティ フラグを設定する方法
Isabelle には、quick_and_dirty
でプルーフをスキップできるモードがありますsorry
。jEdit ではデフォルトで有効になっており、デフォルトでは無効になっていますisabelle build
。設定を変更するにはどうすればよいですか
- jEdit で (対話的に、またはコマンド ライン パラメーターを使用して)、
- の場合
isabelle build
、コマンド ラインから、 - について
isabelle build
は、ROOT
ファイル内にそれぞれ。
また、Isabelle に、できれば jEdit でインタラクティブに、「現在の理論とその親のどの補題がsorry
"を使用して証明されているか?
(Googleで見つけたメーリングリストの投稿とは対照的に、常に最新の回答があることを期待して、ここでこれを尋ねています。)