That's not what I think. Rather, it is you who think that if we can't do the above -- which is indeed impossible to do -- that it is impossible to apply a binary function to one and the same portion of reality.
Basic Definitions
For the sake of convenience, let's not talk about functions in general. The word "function" is a bit too broad for our needs since it can represent almost any kind of relation between two things. Let's focus on causal functions instead.
A causal function is a process that determines the state of one portion of reality ( "output" ) based on the state of other portions of reality ( "inputs". )
The arity of a function is the number of inputs it has. Unary have 1. Binary have 2. Ternary have 3. And so on.
Arity is an arbitrary, linguistic, choice. For every function that has n arguments, where n is greater than 0, there is an equivalent function that has m arguments where m is greater than 0 and different from n.
One and the same portion of reality can be an input to a function more than once.
Your Argument
Your claim is that a binary casual function cannot be applied to one and the same portion of reality.
This is based on your premise that you cannot add a thing to itself.
And I agree with your premise. But I disagree that your conclusion follows from it.
And that's why I keep insisting that you present your full reasoning, not merely bits and pieces of it.
The Problem
The problem is that you're blind to all the other ways that a binary casual function can be applied to one and the same portion of reality. Unlike the method that you keep talking about over and over again, many of these other methods that you DO NOT talk about are logically possible.
Computers can do it just fine, and they do it all the time, but you obviously find it difficult to see it ( even though you're a freak obsessed with computers. )
So let's pick a different example.
Imagine a universe where space and time are infinite in all directions. Imagine a single moment in time where there is nothing in the universe other than 1 apple. Now, consider the one and only law that governs this universe, "The number of apples in the entire universe on any given day is equal to the the number of apples in the entire universe 1 day earlier multiplied by 2." If "n" is the number of apples in the universe today, then "sum( n, n )" is a function invocation that determines the number of apples tomorrow.
The function that is being invoked is a binary function that is applied to one and the same portion of reality. The fact that it refers to one and the same portion of reality does not make it unary.
"sum( n, n )" is equivalent to "mul( n, 2 )" which is equivalent to "twoTimes( n )". They are 3 different invocations of 3 different functions that for the same "n" produce the same output. They are, in effect, 3 different ways to represent one and the same function.
The number of arguments a function has is an arbitrary, linguistic, choice. As a computer programming freak, you should understand these things without me having to spell them out for you. But then again, you have no respect for language, so why would you understand these things?
For every function that has more than 1 argument, there is an equivalent function that has exactly 1 argument.
In computer programming, one way to fight an argument bloat, which is a situation where a function has too many arguments, is via argument bundling, i.e. by combining all of the arguments into a single configuration object. Argument bundling effectively reduces the number of arguments to 1 without changing the behavior of the function. In functional programming, there is a thing called "currying" where functions with multiple arguments are broken down into functions that accept only 1 argument. In functional languages, "sum( a, b )" would be "sum( a )( b )". Instead of having one binary function, you'd have two unary functions.
Question
Is a process of comparing 2 different apples to see if they are equal a binary function or a unary one?
Are 2 apples 2 objects or 1 object?
Who decides?