このブログは、旧・はてなダイアリー「檜山正幸のキマイラ飼育記 メモ編」(http://d.hatena.ne.jp/m-hiyama-memo/)のデータを移行・保存したものであり、今後(2019年1月以降)更新の予定はありません。

今後の更新は、新しいブログ http://m-hiyama-memo.hatenablog.com/ で行います。

factの解読

  1. isar-overviewのBNFによる構文範疇としては、fact ::= label 。labelの定義はないが、たぶん識別子だろう。論理式を識別する名前がラベルとすれば、factは論理式の名前ってことになる。
  2. tutorialにはfactの定義はない。
  3. isar-refには、logical contentとは、types, terms, facts だと書いてある。この言い方からすると、factsはpropositionsじゃないとオカシイ。
  4. 組み合わせて解釈すると、名前で参照可能な命題がfactかな。
  5. implementation文書のp.63の脚注に"facts (proof constants)"と書いてあった。proof constantの意味がワカランが、constantというからには名前がある、ってことだろう。
  6. implementation文書のp.88に"basic facts of Isabelle/HOL: HOL.impI, HOL.conjE, HOL.conjI etc." 。これは、推論規則だが、Pureレベルでは公理、つまり命題。推論規則も含めて、証明行為(リーズニング)の最中に名前で参照できる論理的リソースは何でもfactなのか?
  7. isar-refの"1.1.2 Facts"に、"A fact is a simultaneous list of theorems."、これじゃワカラン。
  8. factの生成は、assumption, proof, abbreviationで行う、とある。assumptionがラムダ抽象、proofとabbreviationがlet束縛に相当すると書いてある。薄っすらと分かるようなワカランような。
  9. factの参照は、名前(ラベル)か、暗黙に名前(this)か、リテラル(論理式そのもの)か、と書いてある。となると、やはりfactは論理式で、多くの場合は名前が付いていて、参照するものらしい。
  10. assumeコマンドとnoteコマンドがfactの操作に使う、とある。
  11. "Isar facts consist of multiple theorems"ともある。theorem=propositionなんだろう。
  12. "The fact produced by the last entry of a block is exported into the outer context."、entryって何だ? また新しい用語が。
  13. "fact this ― the last result produced in the text" resultがまたよくワカランのだが、textはproof textのことだろう。
  14. by fact というのがあるので、byコマンドの引数に渡すようなものがfactなのだろう。
  15. "Previous facts and new claims" ウーム。
  16. "unification of fact and goal statements against rules" ユニフィケーションに関係するか。
  17. "the current fact shall be used in the next step" 現在のファクトが次のステップで使われる。ということは、既に証明済みか仮定した命題がfactか。
  18. "(propositions, facts, and goals)" エエエエ、またワカランことを。propositionとfactって同じじゃなかったの?
  19. Simultaneous propositions or facts may be separated by the and keyword.ウーン、ここでもpropositionとfactを区別している。それとも、類義語、同義語を並べたorか。
  20. いきなり、fact expressions って。やめてくれよ。

factを多用しているのはウェンツェルだけで、ポールソンは使ってない。これだけ重要らしき概念を定義なしに導入するって神経がよく分からない。