2017-02-16 8 views
1

Isabelleで使用できるすべての述語と関数のリストを取得できますか?Isabelleで利用可能なすべての述語

もっと頻繁に起こることはないので、私は、それが既に存在することを認識するために証明(例えばcoprimeのような)のために必要な述語を手で定義し始めます。

答えて

0

find_theoremsと同様に、定義された定数をタイプまたは名前のいずれかで検索できるfind_constsがあります。 find_consts "'a list => nat"またはfind_consts name:"lim"。どうやら、これはcoprime(これはgcd a b = 1の略語です)のような略語を見つけることができます。

もちろん、実際にロードした理論の1つ(直接的または間接的に)で定義された定数しか見つけることができません。あなたが必要とするコンセプトは、~~/src/HOL/Libraryまたは配布の他の部分やAFPにすでに公式化されている可能性が常にあります。

これが当てはまると思われる場合は、ディストリビューションまたはAFPに適切なキーワードをgrepするだけです。それについて知っている人に尋ねます。ここにStackOverflowを頼むことは、このサイトを頻繁に訪れるプロフェッショナルなIsabelleユーザーや、そこにあるものとそうでないものについてよく知っている多数のユーザーがいるので、このようなものを見つけることは良い考えかもしれません。

+0

これは素晴らしいtippsです。ありがとう!しかし、正確にあなたが「恋人」を発見した場所を教えてください。 'nat => nat'を検索しても、コーレントが返されなかったためです。また、 'find_consts'がなぜ定数ではなく関数を返すのか少し混乱しています。 – nicht

+0

関数も定数であり、関数型を持つものだけです。 Isabelleの 'Constant'は、それがバックグランド理論で宣言されている価値であることを意味しています。バウンド変数またはフリー変数。 –

+0

何かあれば、 'nat⇒nat⇒bool'を探して' coprime'を探していたはずです。残念ながら、これはどちらもうまくいきません。なぜなら、共謀はGCDを使って定義され、GCDは 'nat'では定義されていませんが、もっと一般的です。それを見つける唯一の合理的な方法は、名前で 'find_consts name:coprime'です。 (あなたは '' a⇒bool'を検索することができますが、それは他のものを返すでしょう) –

関連する問題