計算モデルと論理とゲーデルの不完全性定理


()


1. 
2. 
3. 
                   ,
           (   {、 {   ヽ.ー、、
               \、__ぃ._ゝ⌒ヾiヾ)}、_
              ン_ー-_二ー-, 〉 {厶 _、ヽ              _
             ヽ._>'´ / /,ィ/ / ハYヘい       ,. -- 〃⌒
 r−-、      ィ´  〃 ,イ/7'  ,イイ/ 小ヽ 丶、 ,. ‐ '´ハi  ″`ヽ、
、ヽ、     /幺ィ  {从{小込v'jゥ仏厶川リ}  YV,   小 Vj. |丶   ヽ
 ` ー-ミー--'_,辷三彡'´ | V'芯`   芬Yjル/ハ. /   V√ヽ._! l\ \ '⌒ヽ
  ,. -‐ ` ̄    _ファィ! "´     ``ン'´イハy′    l{辷 { い. ト、ヽ._ヽ、   \
y'´   __,,_ ___,,彡'´八ム   _'__ 、_幺イ厶/     |'心`VヽヘE、ヽY い、  \
′   / |!    r==ァ'゙’_ヘ、 ´_ー,Z.彡-―-〈   ‐- 、 ド¨    {tリjハ> i`′   ヽ
.    /  !リ    ,.幺-‐=,.イ´'´ ,. / /   ヽ    \l __ '   `゙ ん}.i_,」      `、
.   i`¨¨´   . '´ /ィ<{V/  /,イi′ ,ハ `、   、ぃヽ「⌒`j   厶イl」     、   ぃ            ―――証明と
ヽい l    /  /レ′/〈.い、___,{.{   , -‐ \ \ーヘ` ` `ヒ´_イy , ム、 、   ヽ.   }.}、
`  \V  /,   ,{ {  '´_,ム≧ー、-ヘー}-/  ,. -‐-、ヽノ  ヽ  ハ `バ´^)\`ー-)  }ハ.  ハ{
 ,. 、   >'/   { い.ィ/ゥ ̄`ハ}ヽ\.{ /    _Vごヽ.._/   }ー}`丶乙ヽ '7ノ^ }/
ヽ'^\ー '´_,,. -‐<ゝ`ー之,_ //  }ハヘ{、i    ヽ`マTハ_ _/;  ヽ、 ハ、}ノ┐
,、-‐¬''" ,イ丁二了 {  ___彡' / ノノ  ヘ!      `∨だ¬ /  ∠_` }ヘ ン
 〉 -r‐/√   l ハ._乙 -‐'´/´/    ム      ヾ^ `i′ \ ` ー1´ヽ
-ー‐¬、Y'      |/   /了¨¨´  , '  -‐ ' ,.小、       丶 !    丶.    i  /_,.      ,?..._ {イ{   /    / |′丶       マi、_         ト、     ,nyぃ/
 /´ /      ∠-- .._`丶、 ィ"¨¨ ーヘ 〉|   \      ヽ     -‐   ヽl `"¨¨´ ̄|il}い} ,        プログラムは―――
    { ,ィ,イ厂¨\.!  `ヽ/ '´ ̄`¨マ´/ |     i>、   , - \, '"⌒丶. ハ  __,,.. 」リ近'´
   ∨い、   ` ',         _,. -≧ュ、',      |エ\      Y        |´    ,ゝだンゥー
           i      ,./'´ヽ ヾ 'r-ヘ    l-, -― 、   l.       !    ` }} `^`
          、_r{ヽ   //´  ,.ィ √ }ーヘ  -‐'´__,. 、  ヽ   |__,,.. _、  、ヽ
          ュ?ム′ , '  /。/ // ,'ム斗ヘ  /    `¨´   l     ヽ   丶
         ゞイ} ,ム./   ∧/−-/ ァZ/! i._ぃ (._,,.. ヘ下、   i l |ィT_i_、_ \.  ',
         ケ´|./ 〈  ∧/__ ,<./ / 7/、!´ 「 i.ヘ r‐ 、___`ー--‐―_、i. l i!ヘヘヽ、\ }
         °厶イ\/∨¨7`ヽ'´ ; / l i l lヘヾヽ._`¨`ーァー ユ´l=キミ、vヘ_ぃ. Y         「「おなじだよ♪」」
           ,.ゝヘ2__,イ'‐ / / ′!j_! | !. -i¬ ヘ.く`ヽ`¨´ー'´/ィケ i. l i! l マヘ.ヘ\j         r'´  `¨^タ_ / / i /l_j、|i_,,. l-‐!__Vドヽ`ー‐z_'.イ√丁| i!ト、i_,.Vヘヾ`ヽ、
         ヽ.___,.イ_/ `7、,' !´ i j ヘ Y'i,.ィ'"^v,.--}、`^マ´/ _/ 7√¨¨マ丁ンj_,.イ´ マベへ`ヽ、
           / //‐-/、/ヽ| / . V  !  〉¬ーi、_〉、Y´,_}厶_rt__ri.}└1厶ィつ}ヘへ>>>ぅ,
         // //..__// ヽj' !、__! { jー-'¨´/  厂ヽ.__マ^¨¨´   `1  r‐}_  `ーラ^´ r、√
         Z/V ヽ,くノ _ 廴_j、ノ  j,.、_y'    /   ム._广^i        `¨´  `辷'´厶ノ´

                 ハスケル・カリー & ウィリアム・ハワード

4. 
5. 




ω
 - 
 


プログラムとは何か


1930



チューリングマシン

http://eva-lu-ator.net/~gemma/geocities/godel/turing.png
3










http://eva-lu-ator.net/~gemma/geocities/godel/turing321.png

帰納的関数



http://eva-lu-ator.net/~gemma/geocities/godel/kleene.png
IF-THEN-ELSEBASICC


http://eva-lu-ator.net/~gemma/geocities/godel/kleene321.png
""C
ラムダ計算



http://eva-lu-ator.net/~gemma/geocities/godel/church.png
Haskell()使


http://eva-lu-ator.net/~gemma/geocities/godel/church321.png
""Haskell()Haskell


     ____
   /__.))ノヽ
   .|ミ.l _  ._ i.)
  (^'ミ/.´・ .〈・ リ
  .しi  r、_) |  チューリングとクリーネはわしが育てた
    |  `ニニ' /
   ノ `ー―i´ 
   アロンゾ・チャーチ

3

 
   / ̄ ̄\
 /   _ノ  \
 |    ( ●)(●)
. |     (__人__)  公理からはじめて
  |     ` ⌒´ノ   論理をつないだものだろ、常識的に考えて…
.  |         }
.  ヽ        }
   ヽ     ノ        \
   /    く  \        \
   |     \   \         \
    |    |ヽ、二⌒)、          \
    ゲルハルト・ゲンツェン

""

http://eva-lu-ator.net/~gemma/geocities/godel/gentzen.png


http://eva-lu-ator.net/~gemma/geocities/godel/gentzen321.png

証明=プログラム

以上3つの計算モデルと1つの公理系をまとめると以下のようになる。

名前 作者 キモ 具体例
チューリングマシン チューリング 無限に長いテープ コンピュータ
帰納的関数 クリーネ 無限に続くループ C言語
ラムダ計算 チャーチ 無限に続く再帰 Haskell
自然演繹 ゲンツェン 無限に続く数学的帰納法 証明

無限に続く数学的帰納法というのは、無限にある自然数が続く限り帰納法を繰り返せるということで、つまり、ゲーデル不完全性定理にあった"自然数論を含む帰納的"である。

証明=プログラムについては、
自然演繹と型付きラムダ計算がぴったり対応しているすげー!というカリー=ハワード対応を筆頭に、
プログラムを数学的に厳密に定義しようというプログラム意味論や、証明の正しさをコンピュータで検証しようという定理証明器の研究がある。

以上より、"無限ループを記述できるプログラム"="自然数論を含む帰納的に記述できる公理系"を認めてほしい。

プログラムできないこと(停止性問題)


使
""


便


http://eva-lu-ator.net/~gemma/geocities/godel/terminate.png r(r)
1r(r)then loopOracle(r,r)r(r)
2r(r)else stopOracle(r,r)r(r)
Oracle
Oracleq.e.d.


証明できないこと(ゲーデル不完全性定理)



""""

無矛盾かつ完全な公理系がある

IF-THEN-ELSE


(fuga 2010/2/17 20:50)
Presburger



ゲーデル

()


停止性問題に似た数学の問題

1.  3.141592...  20100217  


2. 

ラッセルのパラドックス









 






ゲーデル不完全性定理の意義










オブジェクト指向


()
http://eva-lu-ator.net/~gemma/geocities/godel/hewitt.png
6070


http://eva-lu-ator.net/~gemma/geocities/godel/hewitt321.png


http://eva-lu-ator.net/~gemma/geocities/godel/church.png()

プログラムはなぜ動くか

抽象的な計算モデルが、だんだんほぐれて、チューリングマシンに落ちる様子を描いてみた。
http://eva-lu-ator.net/~gemma/geocities/godel/pyramid.png

いろんな事情があって、Coq(定理証明器) -> OCaml(型付きラムダ計算) -> C言語(帰納的関数) -> コンピュータ(チューリングマシン) という、コンパイラのピラミッドができているのが面白い。

参考文献