Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Coqで選択公理を形式化してみた

 Coqで選択公理を形式化してみた

2024-05-11のZli 大LTで発表したスライドです。

Coqで集合・添数づけられた集合・直積を定義し、選択公理を形式化します。

soukouki

May 11, 2024
Tweet

More Decks by soukouki

Other Decks in Science

Transcript

  1. 技術書典16の宣伝 オフライン 2024/05/26 (日) 11:00~17:00 @ 池袋・サンシャインシティ オンライン 2024/05/25 (土)

    〜2024/06/09(日) TOGATTA SERVER Tech Book Vol. 2に「10ステップ49問で学ぶ!Coq 入門」を寄稿します。 ぜひ買って読んでくださいね! 3
  2. 直積は帰納型(Inductive Type)を使って定義しました。任意の L -> T の関数 a において、(任意の l にて

    a l が A l に属している)とき、 引数 l を受け取り a l を返す関数が直積 Product A に属していると します。 Inductive Product (T L: Type) (A: IndexedEnsemble T L) : Ensemble (L -> T) := | Product_intro: forall (a: L -> T), (forall (l: L), a l ∈ A l) -> (fun l => a l) ∈ Product A. 直積の引数TとLは、無限集合にすることもできます。例えば、Lに実 数全体の集合を当ててしまうこともできます。このように無限集合を 割り当てたときの直積の性質について、選択公理というものが存在し ます。 10
  3. 選択公理 選択公理とは、添数づけられた集合Aの要素が空でないならば、直積 が空でないことを主張する公理です。数学で聞くZFC公理系の、Cが この選択公理です。 公理というのは、他の公理からどうやっても導けない、議論の前提に なります。 Axiom choice: forall (T

    L: Type) (A: IndexedEnsemble T L), (forall l: L, A l <> ∅) -> Product A <> ∅. この性質は有限集合においては明らかですが、無限集合においてはそ うではありません。直積を一般化して取れる値を増やしたからこそ、 必要になった公理と言えます。 12
  4. 選択公理を使う前 H3 : forall b : B, Ab b <>

    ∅ 選択公理を使った後 H3 : Product Ab <> ∅ 15