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

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

定理記述

こんな感じかな。

theorem 定理の名前
 require モジュール1, モジュール2
 using 定義, 定理1, 定理2, 規則
 for 宣言1, 宣言2
 given 命題1, 命題2
 holds 命題
 proof
   証明
 end
end

考慮点は

  • カンマの代わりにandか?
  • for given の繰り返しを許すか
  • holdsの前にforを許すか

proofの代わりに as axiom と as conjecture が許される。theorem as axiom と theorem as conjecture は別記法で書ける。

axiom 公理の名前
 require モジュール
 using 定義1, 定義2
 for 宣言1, 宣言2
 given 命題1, 命題2
 holds 命題
end

公理の記述のなかで定義を使うならば、requireとusingは書く。

色々と略記できる。

requireの共通化
module モジュール名
require モジュール1, モジュール2

theorem 定理の名前
 using 定義, 定理1, 定理2, 規則
 for 宣言1, 宣言2
 given 命題1, 命題2
 holds 命題
 proof
   証明
 end
end
宣言(型宣言)の共通化
module モジュール名
require モジュール1, モジュール2

for 宣言1, 宣言2

theorem 定理の名前
 using 定義, 定理1, 定理2, 規則

 given 命題1, 命題2
 holds 命題
 proof
   証明
 end
end
仮定の共通化
module モジュール名
require モジュール1, モジュール2

for 宣言1, 宣言2
given 命題1, 命題2

theorem 定理の名前
 using 定義, 定理1, 定理2, 規則
 holds 命題
 proof
   証明
 end
end
usingの省略
module モジュール名
require モジュール1, モジュール2

for 宣言1, 宣言2
given 命題1, 命題2

theorem 定理の名前
 holds 命題
 proof
   証明
 end
end
holdsの省略
module モジュール名
require モジュール1, モジュール2

for 宣言1, 宣言2
given 命題1, 命題2

theorem 定理の名前
 命題
 proof
   証明
 end
end