last day (15 days later) » 

20:21
0
Q: Any type of operator not unary or binary?

147pmI'm studying the Cartesian product, which is bound to the idea of a binary relation. Even with Cartesian products of several sets, n-ary Cartesian products, we have to think combinatorically as two sets at a time, recursively. Is there any sort of operation where there is, say, a triary operation...

In computer science the ternary operator (?:) is the if-else reduced to a single operation, but it isn't a fundamental unit of operation so to speak.
No it isn't. It's like triary logic, i.e., three choices, e.g., True, False, and Undecided. But, no, that isn't operation per se. That's propositional. This issue is a bit like human sight which is necessary some parallel process. There must be some natural n-ary operators at work in something so parallel.
I don't think it is standard to consider an $n$-fold Cartesian product as an iteration of binary products (as doing so would introduce an unnecessary asymmetry).
For a standard and common example, there's the triple product of $3$-vectors, which sends $(\mathbf{x},\mathbf{y},\mathbf{z})$ to $\mathbf{x}\cdot(\mathbf{y}\times\mathbf{z})$.
There are also nullary operations, which are common in universal algebra.
"We have to think combinatorially two sets at a time." This is false. An $n$-ary cartesian product of sets $X_1,\ldots,X_n$ is by definition the set of all function $f\colon n\to\cup X_i$ with $f(i)\in X_i$ for each $i$; more generally, an $I$-ary cartesian product of a family $\{X_i\}_{i\in I}$ is a set of functions $f\colon I\to \cup X_i$ with $f(i)\in X_i$ for each $i\in I$.
@ArturoMagidin Wouldn't nullary operators just be a synonym for constants? Like, say, $1$ or $\pi$?
20:21
@ArturoMagidin: For triple product, can we entirely rule out any and all binary operations? Not sure how a nullary is anything other than itself, though. It's an operator that doesn't operate, AFAIU.
@ArturoMagidin: Yes, but the n-ary Cartesian is generated binary-wise. Writing nested iterators or recursion shows this.
Thanks to @ArturoMagidin for his useful expansion on my previous comment. It is a (seemingly necessary) oddity in the usual set-theoretic foundations of mathematics that we first define the notion of ordered pairs $(a, b)$ and then use it to define the notion of functions and then use functions to supersede the original definition of ordered pairs to define $n$-tuples.
I don't know where you get that idea. $n$-ary Cartesian product I am familiar with is defined precisely as I indicated, not as a recursion. A recursive definition requires establishing a bijection between $A\times (B\times C)$ and $(A\times B)\times C$, etc.
Perhaps what you are inching towards is the idea of currying. It is possible to replace a single function of finite arity with a composition of unary functions (but you need to replace your initial function with a family of functions to do that). In that sense, you can do all sorts of replacements for finite arity; but you cannot do that for operations of infinite arity which, while not terribly common, nonetheless exist. E.g., the operator on $\mathbb{R}\cup\{\infty\}$ taking a sequence to its limit (if it exists) or $\infty$.
@ArturoMagidin: Hey, I'm a programmer. Any Cartesian product of any arity involves working through the sets two at a time in a nested iterative way. Conceptually, you can maybe stay above the fray -- but this is strange territory indeed.
What programming language are you using? If it's a typed functional programming language like ML or Haskell, then the $n$-ary products definitely aren't iterated binary products.
That may be how you happen to instantiate it some particular language, but there is absolutely no need to do that. I can easily whip up an implementation of an $n$-ary cartesian product that is defined exactly as I have described and not via iteration, if I so desired. I'm pretty sure I did it at some point in C. And you may want to add "for me" after "strange territory."
20:21
@ArturoMagidin: Yes, currying is a sort of generalization of function application, i.e., we create a "closure" as we move on down the parameter list. But again, this happens in a binary, step-by-step way. I'm philosophically exploring the mechanisms of parallel processing perhaps.
I linked you to the Wikipedia page of nullary operations, so you don't have to guess what it means. For any set $X$, the set $X^{\varnothing}$ consists of a single element, so a nullary operation on $X$ is a function $X^{\varnothing}\to X$; it is equivalent to identifying a distinguished element of the set $X$. It is most definitely an operation, whether you are sure or not.
Back to something more basic. My example of 3 - 2 - 1. Can there be a $3 \oplus 2 \oplus 1$ in this world we've just discussed? And I'm studying Haskell, math's or Haskell's gift to the other.
What "this world we've just discussed"? I described explicitly what an $n$-ary cartesian product is, but you don't seem to like it because that's not how you want to think about it. If your question amounts to "If you are forced to think about this in the way I want to think about it, do you have to think about it in the way I want to think about it?" then there isn't much to discuss. If you are familiar with currying you can see that it is trivial to break down any operation of finite arity $n\geq 2$ into a sequence of binary/unary operators. But you are still stuck with the limit operator.
@Arthur: Careful with "constant". Nullary operations are usually said to be equivalent to "distinguished elements", to avoid confusion with "constant functions" (functions with sundry domain but whose output is a singleton).
Well Haskell's $n$-fold products are not iterated binary product as this transaction with Haskell shows :λ (1, 2, 3) == ((1, 2), 3) Couldn't match expected type ‘(Integer, Integer, Integer)’ with actual type ‘((Integer, Integer), Integer)’ In the second argument of ‘(==)’, namely ‘((1, 2), 3)’ In the expression: (1, 2, 3) == ((1, 2), 3)
@RobArthan: Thanks, will look into that.

last day (15 days later) »