出来事と因果関係(1)

因果論に関して、こないだふと考えた変な話を書く。

いま、入力を一つ受けてそれを変数に代入し、2を加えて出力するプログラムを考える。変数の型は自然数であると宣言されていたとすると、このプログラムはラムダタームλx:N.(λy:N.y+2)xによって表現される*1
このプログラムに3を入力すると、5が出力される。それはこのラムダタームのβ-reductionに対応する。

 (\lambda x:N.(\lambda y:N.y+2)x)3 \rightarrow_{\beta} (\lambda y:N.y+2)3 \rightarrow_{\beta} 3+2 \rightarrow_{\beta} 5

さて、3の入力と5の出力の間にはいかなる関係があるのか。つまり、3が入力されるという単一の出来事と5が出力されるという単一の出来事の間の関係は何か。ここには何らかの関係がある。反事実的に考えるなら、5が出力されていなかったなら、3は入力されていなかったであろう。つまり、Lewisの概念を適用すると、この二つの出来事を表現する命題の間にはcounterfactual dependenceが存在する。文字面だけを追うと、この二つの出来事の間には因果関係が存在することになる。すなわち、3の入力は5の出力を因果的に帰結している。

だが、この計算過程を因果関係と呼ぶ人はたぶんいない。

いくつも考えるべきことがある。まず、現実の計算とβ-reductionに対応している数学的計算を区別すること。数学的計算が出来事eventであるかどうか。もしそうなら、なぜに因果関係ではないのか。

*1:入力と出力とは何であるのかは置いておく。内部の計算過程だけを問題にする。また、関数+2とか入力として考えられる自然数もラムダタームとして表現されなければならないが、めんどいので省略。