注ï¼ãã®è¨äºã®å 容ã«ã¯ãåé¡ããããããªã®ã§ãåå¼·ãã¦æ¸ãç´ãäºå®ã§ãã
ゲーデルの不完全性定理ãèªãã§ãçè§£ã§ããªã Lisper ã®ããã«ãLisp ã®ã³ã¼ãã§ä¸å®å ¨æ§å®çã説æãã¦ã¿ããæ¨æ¥ã¨åæ§ã« Emacs Lisp ã使ãããCommon Lisp ã Scheme ã§ãã³ã¼ãã¯ãã¾ãå¤ããªãã
ã²ã¼ãã«ã®ä¸å®å ¨æ§å®ç
ã²ã¼ãã«ã®ä¸å®å ¨æ§å®çã¨ã¯ããããã£ã±ã«è¨ãã¨ã(èªç¶æ°è«ãå«ã帰ç´çã«è¨è¿°ã§ãã)å ¬çç³»ãç¡çç¾ã§ããã°ã証æãå証ãã§ããªãå½é¡ãåå¨ãããã¨è¨ããã¨ã ãããã¯åã¤ãã®ãã©ããã¯ã¹ã¨ä¼¼ã¦ããã¨è¨ããã¦ããã
åã¤ãã®ãã©ããã¯ã¹ã¨ã¯ãããã®æã¯åã§ãããã¨ããæã¯ãæ£ããã¨ãééã£ã¦ããã¨è¨ããªãã¨ãããã¨ããã®æãæ£ããã¨ä»®å®ããã¨ããã®æã¯åã¨ãªããä»®å®ã¨ä¸è´ããªãã䏿¹ããã®æãééã£ã¦ããã¨ä»®å®ããã¨ããã®æã¯åã§ã¯ãªããªããæã®å 容ã¨ä¸è´ããªããçç¾ã®æ ¹æºã¯ããã®æããã®æèªä½ã«ã¤ãã¦è¿°ã¹ã¦ããèªå·±è¨åã«ããã
ã²ã¼ãã«ã¯å°ãå 容ãå¤ãã¦ãããã®æã¯è¨¼æã§ããªããã¨ããå½é¡ãèãããå¯è½æ§ã¨ãã¦ã¯äºã¤ããã証æå¯è½ãªå®çã§ãããã証æä¸å¯è½ãªå®çã§ãªããã®ã§ãããããã®æã証æå¯è½ã§ããã¨ä»®å®ããã¨ããã®æã¯è¨¼æã§ããªããã¨ã«ãªããä»®å®ã¨ä¸è´ããªããã¤ã¾ããå ¬çç³»ãçç¾ãã¦ãããã¨ã«ãªããããã§ãã®å¯è½æ§ãæ¨ã¦ã¦ããã®æã¯è¨¼æä¸å¯è½ã§ããã¨ä»®å®ãããããã¨ãä»®å®ã¨æã®å 容ãä¸è´ããã®ã§ããã®å ¬çç³»ã«ã¯è¨¼æã§ããªãå½é¡ãåå¨ãããã¨ã«ãªããã¤ã¾ãããã®å ¬çç³»ã¯ä¸å®å ¨ã ã
å¾è¿°ã®ãç¥ã®éçãã®èè ãã£ã¤ãã£ã³ã¯ä»¥ä¸ã®ããã«è¿°ã¹ã¦ããã
ã²ã¼ãã«ã¯ãxãyã証æãããã¨ãããã¨ãç®è¡çã«è¡¨ç¾ããã®ã§ããããã¯é常ã«å·§å¦ãªæ¹æ³ã§ãããæ°å¦çåè¿°ãæ£ã®æ´æ°ã¨ãèããããã¨ããåºæ¬çãªèãã¯ã仿¥ã§ã¯ããã»ã©é©ããã¨ã«ã¯æãã¾ãããçµå±ããã¹ã¦ã®è¨å·åããç¾ä»£ã®ã³ã³ãã¥ã¼ã¿ã§ã¯æ°å¤ã§è¡¨ããã¦ããããã§ãã... ã²ã¼ãã«æ°ã¯ã1930年代ãããä»ã®æ¹ããã£ã¨çè§£ããããã®ã§ãã
Lisp ã«ããä¸å®å ¨æ§å®çã®è¨¼æ
ä¸å®å ¨æ§å®çã Lisp ã§è¨¼æããã«ã¯ãããã®Så¼ã¯è¨¼æã§ããªããã¨ä¸»å¼µããSå¼ãæ§æã§ããã°ããã
ã¾ãæåã«Så¼ã妥å½ãªè¨¼æã夿ãã valid-proof-p ã¨ãã颿°ãèããããã®é¢æ°ã¯ã弿°ã妥å½ãªè¨¼æãªã証æãããå®çãè¿ããããã§ãªããªã nil ãè¿ãããã®é¢æ°ã¯å®éã«ã¯å®è£ ããªãããã©ãSå¼ãèµ°æ»ãã¦å¦¥å½ããå¤å®ããã¢ã«ã´ãªãºã ã¯ããã¨ããã
ã¤ãã«ãunprovable-p ã¨ãã颿°ãèããããã®é¢æ°ã¯ãä¸ããããSå¼ã証æã§ããªããã¨ã主張ãããå®è£ ã¨ãã¦ã¯ãä¸ããããSå¼ a ãããã¹ã¦ã®Så¼ b ã«å¯¾ã㦠(valid-proof-p b) ã¨çãããªããã¨è¨ãã°ããã
次ã«ä»¥ä¸ã®ãããªé¢æ° g ãèããã
(set 'g '(lambda (x) `(unprovable-p (eval (,x ',x))))) (fset 'g g)
颿° g ã¯ã`(,x ',x) ã eval ãã¦ããã®ã§ã`(,x ',x) ã¨ããååããå¤ãåãåºãããã®å¤ã証æä¸å¯è½ã ã¨ä¸»å¼µãã¦ãããã¨ã«ãªãã
ã§ã¯ãg ã« g ãä¸ããå ´åãä½ã証æä¸å¯è½ã ã¨ä¸»å¼µãã¦ãããã¨ã«ãªãã ããï¼
(pp (g g)) â (unprovable-p (eval ((lambda (x) `(unprovable-p (eval (,x ',x)))) '(lambda (x) `(unprovable-p (eval (,x ',x)))))))
eval ããå¾ã´ãã£ã´ãã£ãã¦ããé¨åãååã§ããããã®ååã¯å¤ã¯ãªãã ããï¼ãããç¥ãã«ã¯ã(g g) ããååãåãåºãã¦ãeval ããã°ããã
(pp (eval (cadr (cadr (g g))))) â (unprovable-p (eval ((lambda (x) `(unprovable-p (eval (,x ',x)))) '(lambda (x) `(unprovable-p (eval (,x ',x)))))))
ãã£ãã¨åããã®ãåºã¦ãããLisp ã«åãã ã¨ç¢ºèªããã¦ã¿ããã
(equal (g g) (eval (cadr (cadr (g g))))) â t
çµå±ã©ããããã¨ã ããï¼
(g g) ã¯ãããååãæãSå¼ã証æä¸å¯è½ã ã¨ä¸»å¼µãã¦ããSå¼ã§ãããããååãæããã®ãåãåºãã¦ã¿ã㨠(g g) ã§ãã£ããããªãã¡ (g g)ã¯ããèªåèªèº«ã証æä¸å¯è½ã ãã¨ä¸»å¼µããSå¼ã§ããã
ãã©ãããã ãããã®æå³ãèãã¦ã¿ãã(g g) ã証æå¯è½ãªãã証æä¸å¯è½ãè¯å®ãããã¨ã«ãªãã®ã§ãå ¬çç³»ãçç¾ãã¦ãããã¨ã«ãªãã(g g) ã証æä¸å¯è½ãªãã(g g) ã®ä¸»å¼µã¨ä¸è´ããã証æä¸å¯è½ãªåé¡ããããã¨ã«ãªããå ¬çç³»ã¯ä¸å®å ¨ã§ããã
ãªã«ãé¨ããããããªæ°ãæããããªããããããLispã«ããã²ã¼ãã«ã®ä¸å®å ¨æ§å®çã®è¨¼æã§ããã
åèæç®
æ¨æ¥ã®è¨äºã¨ä»æ¥ã®è¨äºã®å ãã¿ã¯ããç¥ã®éçãã¨ããæ¬ã§ããããã®æ¬ã¯ãå 容ã¯ç´ æ´ãããããè¨èãè¶³ããªãããèªç ´ããã®ã¯é£ãããç§ã¯ã不完全性定理のLisp, Mathematicaによる記述ãåèã«ãã®æ¬ãèªãã ãã2å¹´ãããæå³ä¸æã ã£ããæè¿ããããåãã£ãæ°ã«ãªã£ãã®ã§ãå¿ããªãããã«è¨äºã«ã¾ã¨ãã¦ã¿ã次第ã§ããã

- ä½è : G.J.ãã£ã¤ãã£ã³,é»å·å©æ
- åºç社/ã¡ã¼ã«ã¼: ã¨ã¹ã¢ã¤ãã¼ã»ã¢ã¯ã»ã¹
- çºå£²æ¥: 2001/09/01
- ã¡ãã£ã¢: åè¡æ¬
- è³¼å ¥: 2人 ã¯ãªãã¯: 61å
- ãã®ååãå«ãããã° (9ä»¶) ãè¦ã