証明によるプログラムの信頼性の向上(仮)
Yasutaka Higa
- 証明によるプログラムの信頼性の向上を目指す。
- 信頼性とは、プログラムがプログラマの予期しない動作をしないことである。
- 目標の例としては、現在は実行時にしか検出できないエラーなどを実行以前に検出することがある。
- ちょっとゲーデルの完全性定理と不完全性定理について調べた
- 型システム入門 (Types and Programming Languages) を読み始めました
- 述語論理の完全性定理
- 述語論理の論理式が真であれば、公理系の証明が存在する
- 一回述語論理のみらしい
- 一回述語論理とは命題論理に量化記号を導入したもの
- 命題 : 人間は寝る
- 量化された命題 : すべての人間は寝る
- 自然数論の不完全性定理
- すべての命題は証明可能/反証可能、というわけではないらしい
- ゲーデル命題という「真であるにも関わらず、システムで証明可能で無い」命題が存在する
- 前提 : 真==証明可能、偽==反証可能 だとすると
- 前提 : 証明可能な命題が真で、証明不可能な命題が偽であることが決定的
- 例 : 「この命題はシステムによって証明可能では無い」
- 真なので反証はできない
- 真なので証明可能かもしれないが、「証明可能で無い」という述語がついている
- よってシステムで決定不可能 == システムで証明できない
- 結局 : 具体的に何を意味するのかはあまり良く分かっていない
- 論理は完全っぽくて自然数論は不完全っぽい、くらいの認識
- 論理は真であれば証明が存在する
- 自然数論では証明が存在しないものがある
- なら論理と自然数論の違い……?
- とりあえず、自己言及はしない方が良い、とかくらいの認識
- 型システム入門 - プログラミング言語と型の理論 -
- Types and Programming Languages
- まだ読み始めたばかりです
- 型を使わない演算についてまでしか読んでません