読者です 読者をやめる 読者になる 読者になる

池田はるよしのメモ

論理学を中心に語ります。

不具合を考える

【すべての事象を対象にすると・・・】
不具合のないシステムは

¬∃x(Bx)
※B : 不具合である

どんな操作や環境下であっても、
一切の不具合が存在しない。

で、ひとたび不具合が発覚すると、
¬∃x(Bx) ∧ ∃x(Bx) ≡ ∀x (¬Bx) ∧∃x(Bx)
⇒ ¬Ba ∧ Ba

で矛盾したことになる。

 

【操作を限定する】
矛盾を引き起こしたくなければ、操作や動作、環境などを
製作側が想定したものに限定すればよい。

∀x(Tx⇒¬Bx)
※T : 製作側が想定したものである。

そうすると、たとえ、不具合が存在したとしても、それは、
製作側が想定できなかったものである。
[前提1]∀x(Tx⇒¬Bx)
[前提2]∃Bx
[結論]∃x(¬Tx∧Bx)

が言える。
----
証明:結論を否定すると、矛盾になる。
∀x(Tx⇒¬Bx) ∧ ∃xBx ∧ ¬∃x(¬Tx∧Bx)
≡ ∃x(Tx∧Bx) ∧ ∀x¬Bx ∧ ∀x(Tx∨¬Bx)
⇒ Ta∧Ba∧¬Ba∧(Ta∨¬Ba)
≡ D∧¬D
----

 

【でも、不具合はゆるされない場合】
お金関係のシステムだとか、信号など、不具合の許されないシステムは結構多い。
その場合は、製作側が想定できなかた事象はすべてエラーにすればよい。

∀x(¬Tx⇒E)
※E:エラーになる。

すくなくとも、間違いな結果を出すことはない。

[前提1]∀x(Tx⇒¬Bx)
[前提2]∀x(¬Tx⇒E)
[結論]¬∃x(¬Tx∧Bx)

 

【使わなければ不具合は起きない】
ちなみに操作しなければ、最初の条件でも、
¬∃x(Bx)
は真になり、不具合は決して起きない。

何もしなければ、失敗しないのと同じなのだろう。