部分関数の合成
式の全ての部分が値が持つときに限り、全体も値を持つ
定義
m変数部分関数gと、k変数部分関数f_1,\cdots,f_mの合成
g\left(f_{1}(\vec{x}), f_{2}(\vec{x}), \ldots, f_{m}(\vec{x})\right)の定義域は
\left\{\vec{x} \in \mathbb{N}^{k} \mid f_{1}(\vec{x}) \downarrow, \ldots, f_{m}(\vec{x}) \downarrow \land\; g\left(f_{1}(\vec{x}), \ldots, f_{m}(\vec{x})\right) \downarrow\right\}
図にすると、こんな感じ
引数の数も違うのでまったく厳密ではないが、ノリとして

部分関数を合成していくごとに、定義される部分が小さくなっていく感じ
例
以下の3つの関数を考える
f(x) = \left\{ \begin{array}{ll} x & (xが偶数) \\ 未定義 & (xが奇数) \\ \end{array} \right.
\mathrm{nought}(x)=0
\mathrm{multiply}(x,y)=x\times y
このとき合成された、\mathrm{multiply}(f(x),\mathrm{nought}(x))の定義域はどうなるか
以下のようになる
\mathrm{multiply}(f(x),\mathrm{nought}(x)) = \left\{ \begin{array}{ll} 0 & (xが偶数) \\ 未定義 & (xが奇数) \\ \end{array} \right.
xが奇数のときに、0にならないことに注意
式の全ての部分が値が持つときに限り、全体も値を持つ