As some of you may know, I am engaged in a long-term campaign against the view that concrete computations (computational states, computing mechanisms) are individuated, even in part, by their semantic properties. Of course, computations may be interpreted, i.e., assigned semantic content, but this is not part of their individuation. Instead, I argue that concrete computations are individuated by their functional properties, as specified by a mechanistic explanation of the relevant phenomenon. Actually, if you grant me an abstract notion of mechanism, the same is true for abstract computations. At least, this is how things works for the notion of computation studied within computability theory and computer science.
As of today, a preliminary articulation and defense of this view is available online at Philosophical Studies. (If your library does not subscribe to Phil. Studies, you can also find it here.)
Gualtiero,
I’m curious about this claim of yours:
“The argument from the identity of functions ignores that when talking about computation, functions may be individuated in two ways.”
One question I have is: what reason is there for believing this? Did I miss something?
Second, I take it that the claim is that for any function individuated in terms of numbers, that very same function could be individutated in terms of sets of co-denoting numerals and that the sets thereby defined don’t depend on being co-denotative (since that’s semantic). Note, though, that these sets of numerals are going to be a pretty gerrymandered lot, containing, among other things, arabic and roman numerals. What relation is there between the domains and ranges thereby defined? I don’t see that any particular mechanism would thereby be defined. What, besides the semantic property of being co-denotative makes these sets of numeral inscriptions hang together?
Thanks for your questions.
Re: First question. As I explain in the article, functions may be defined either from inputs to outputs (such as strings of digits), or from objects denoted by the inputs to objects denoted by the outputs (such as numbers). For many purposes, it is convenient to individuate functions directly interms of objects denoted by the inputs and outputs. For individuating computations, I argue, functions should be individuated in terms of their inputs and outputs.
Re: Second question. The two methods of function individuation mentioned above do not group the same sets of functions together. So, arithmetic addition defined over numbers remains arithmetic addition regardless of whether the numerals being manipulated are arabic, roman, binary, etc. But arithmetic addition defined over numerals is a different function depending on whether the numerals manipulated are arabic, roman, binary, etc. Conversely, the same function defined over strings of digits turns into a set of different functions if the same digits are interpreted in different ways (e.g., as representing numbers, or computer programs, or whathaveyou). Neither grouping of functions is more gerrymandered than the other; they are simply two different ways of individuating functions.
Gualtiero,
I think this paper hits the mark as far as how people in computer science really think about computation. While reading Carl Craver’s work on mechanisms, it struck me that this could be applied to computation, and that such an account would probably accurately reflect how people who really study computation think of it. I’m glad to see that this view is now out for others to scrutinize.
Good job, author! Good job!
Tomorrow I will open my new blog about the cinema movies. Nice to meet you!