In Weihrauch’s Type-2 computability theory, a string function $ f\colon\subseteq \Sigma^{\omega}\rightarrow \Sigma^{\omega}$ (the $ \colon\subseteq$ indicates that $ f$ may be a partial function) is computable iff there exists a Type-2 Turing machine that *exactly* realizes $ f$ , which implies that the Turing machine *must* fail to produce an output on inputs that are not in the domain of $ f$ .

To extend this to functions between arbitrary domains $ D_1$ and $ D_2$ , one specifies *representations* $ \gamma_i\colon\subseteq\Sigma^{\omega}\rightarrow D_i$ , and Weihrauch defines $ f\colon\subseteq D_1\rightarrow D_2$ to be $ (\gamma_1,\gamma_2)$ -computable iff there exists a Type-2 computable string function $ g$ such that $ f(\gamma_1(y)) = \gamma_2(g(y))$ whenever $ f(\gamma_1(y))$ is defined.

*But $ \gamma_2(g(y))$ is allowed to be defined even when $ f(\gamma_1(y))$ is not*.

*Why is it defined this way?* It seems to me more natural to require $ f\circ\gamma_1 = \gamma_2\circ g$ , i.e. the domain of the realization $ g$ must match the domain of $ f$ . With Weihrauch’s definition we have the odd condition that, for a *string* function $ f$ , the statements “$ f$ is Type-2 computable” and “$ f$ is $ (\mathrm{id},\mathrm{id})$ -computable” (where $ \mathrm{id}$ is the identity function) *are not equivalent*.

Reference: Weihrauch, K. (2000), *Computable Analysis: An Introduction*, Springer.