# Does input exist? Is f(x) identical to y?

by Neveos
Tags: exist, identical, input
 P: 16 So, a heated debate started over whether input really exists since the equals sign is a case of identity. For instance, x^2 = 16. x could either be 4 or -4, but both sides of the equation (both expressions) are really only expressing the same thing... the value: 16. One wouldn't normally think that this "x^2" has anything necessarily to do with 4 or -4 or (2+1+1) or (14-18)... but it has everything to do with the value:16. So if 16 is true, (14-18) is not necessarily true. Now, (14-18)^2 is... but this is the same as saying 16. Nor is 16 "made of 4" as it is not "made of -4". Well, if that seems obvious, it isn't so obvious when we consider what started the heated debate. We were discussing cellular automata, such as "Life", and I expressed an intuition I was having that in the game of life, the prior states did not exist. The states that are generated are "pure functions" of the previous state, and I argued that it is as though we are watching a math problem being solved... prior states are really just a complication of some form of output. So, theoretically (and this is true), multiple states can be skipped with better rules applied to the game, as with simplification in mathematics. Eventually this went on to talk about the nature of logic, time, equality... it was very broad, but I wanted to hear what you'd think. So, what do you think? Do you think that when I give the expression "3+2+1" I am expressing one value or multiple values?
 P: 2,501 Well, are you asking how may unique strings exist for a given sum? Clearly the sum is just one number, but there can be many possible strings of positive integers which produce the same sum. So for the number three it's 3, 2+1. 1+2, 1+1+1. Can you think of a formula which gives the number of all possible such unique strings for any given sum?
P: 16
 Quote by SW VandeCarr Well, are you asking how may unique strings exist for a given sum? Clearly the sum is just one number, but there can be many possible strings of positive integers which produce the same sum. So for the number three it's 3, 2+1. 1+2, 1+1+1. Can you think of a formula which gives the number of all possible such unique strings for any given sum?
I'm not asking that, but that should always be infinity. Also, this isn't exactly about sums, it is about expressions. So, 2+1, sums up to 3, but "2+1" is identical to 3. They express the same value. So turning it into a function it looks something like this: "+1(2)=3". 3 is known as the output, 2 is the input. But "2+1", that string, does it express one value or multiple values? If it expresses multiple values, then... how?

P: 2,501
Does input exist? Is f(x) identical to y?

 Quote by Neveos I'm not asking that, but that should always be infinity.
No, not if you restrict it to the positive integers. It's called a composition (or decomposition). So for example 5 has 16 decompositions.

 Also, this isn't exactly about sums, it is about expressions. So, 2+1, sums up to 3, but "2+1" is identical to 3. They express the same value. So turning it into a function it looks something like this: "+1(2)=3". 3 is known as the output, 2 is the input. But "2+1", that string, does it express one value or multiple values? If it expresses multiple values, then... how?
At the risk of misunderstanding you, I'll let someone else try to answer your question. It seems any string which is a decomposition of a given positive integer (y) could serve as input to your additive function f(x).
 P: 59 Any constant expression obviously expresses a single value. In a random expression involving only constants, the individual values of those constants and how they combine to produce the final expression is usually irrelevant. However, if one finds that a particular measured value can be written as an expression involving interesting physical and mathematical constants, one can sometimes use this in guesses about what physical laws might produce the observed value. For example, the ratio of a proton's mass to an electron's is about 1836, and writing this as 1589 + 197 + 51 obviously doesn't give any insights. However, if you make a measurement that can be expressed as some product involving c, G, h, pi and a small integer, you could make inferences from it. But, in itself, any constant expression doesn't mean anything beyond its value.
P: 16
 Quote by Gigasoft Any constant expression obviously expresses a single value. In a random expression involving only constants, the individual values of those constants and how they combine to produce the final expression is usually irrelevant. However, if one finds that a particular measured value can be written as an expression involving interesting physical and mathematical constants, one can sometimes use this in guesses about what physical laws might produce the observed value. For example, the ratio of a proton's mass to an electron's is about 1836, and writing this as 1589 + 197 + 51 obviously doesn't give any insights. However, if you make a measurement that can be expressed as some product involving c, G, h, pi and a small integer, you could make inferences from it. But, in itself, any constant expression doesn't mean anything beyond its value.
Lost me a little bit towards the use in breaking apart a value, but I agree, such components are useful when relating a value to multiple other values (such as c and pi). In fact, the merit of "3+3" in describing the value:6, is that it also describes something about the relationship between 6 and 3, such as 3 being half the value of 6... regardless, the expression itself is only expressing the value: 6.

Now the reason I'm bringing this up is due to the fact that we were talking about Omega Point theory, and I was advocating the position that the "end of time" is just as valid a temporal spot to look for a theory of everything, as the beginning was. When cellular automata was brought up, I was arguing that the input states were similar to unsimplified mathematical expressions of a simplified expression. The simplified expression being the stabilized output (final state, final oscillation). "Pan-computationalism" attempts to describe physical phenomena as obeying the same rules as a cellular automata would, as though the entire Universe were a simulation, and the progression of time is akin to the progression of states in the simulation. So I argued that the prior states of our Universe, acting as inputs, were, more or less, dependent on a final stable state of the Universe.
 P: 59 Yes, the prior states of the Universe are related to any later states. The laws of physics work in either direction, and for every future there is a set of possible pasts, just as for every past there is a set of possible futures. However, in reality the past is known and the future isn't, and this causes the thermodynamical arrow of time to point to the future.
P: 16
 Quote by Gigasoft Yes, the prior states of the Universe are related to any later states. The laws of physics work in either direction, and for every future there is a set of possible pasts, just as for every past there is a set of possible futures. However, in reality the past is known and the future isn't, and this causes the thermodynamical arrow of time to point to the future.
Agreed, but by saying, "for every past there is a set of possible futures" your conception is unlike cellular automata. Because future states are determined by the past, but the past is actually only roughly determined by the present. Multiple states can give rise to the same state (multiple pasts can give rise to the same future), but from that same future, it cannot be determined which state it was that gave rise to it. Likewise, if we have the number 16, and let's just say we know that some number was squared, we don't know whether it was 4 or -4.
P: 810
 Quote by Neveos So, a heated debate started over whether input really exists
Who started a heated debate? </grammar-nazi> :)

 For instance, x^2 = 16. x could either be 4 or -4, but both sides of the equation (both expressions) are really only expressing the same thing...
What you have stumbled upon here is the notion of irreversibility. Irreversibility is a very important concept in many areas of math, science, and computing.

In this particular example, the squaring function is not an injective function. When you apply f to a number, you throw away some piece of information about the argument. (You throw away the sign). With the exception of f(0), if you know what f(x) is, it's impossible to tell what x was.

Non-injective functions occur all over in mathematics. Some other examples are:

* f(x) = 0. The "constant 0" function throws away ALL information about x.
* f(x) = 100 * floor(100 * x). This "truncate" function throws away some of the precision of x.
* f(x) = sin(x). The sine function throws away the total magnitude of x, leaving only it's magnitude modulo 2 pi.

Word your arguments carefully though. Saying that "the inputs REALLY exist" or that "the inputs DON'T really exist" are both nonsense. What the heck do you mean by "exists" here? If x^2 = 16, then, yes, x "exists". We don't know what it is. Without further information, we can neither prove x = 4 nor x = -4. We can prove x does NOT equal 5, though. We CAN prove that |x| = 4. So x "exists". But it's such a silly question.

(As a note, asking whether something "exists" or whether something is "real" is almost always a sign you don't quite understand what you're talking about. There is no unearthly force dictating what is real and what isn't.... what we're working with, especially in math, are abstract MODELS of things, not the things themselves).

 We were discussing cellular automata, such as "Life", and I expressed an intuition I was having that in the game of life, the prior states did not exist.
This is another great example of an injective function. Take a set of "Life states" S. S is basically a finite set of coordinates, which indicate the "living" cells on the board. The "rules" for the game of life, then, are represented as a function d from S into S.

So if you start off with a state s0, d(s0) is the state you get if you hit "next" and went one step into the game. If you hit "next" again, the state you see is d(d(s0)).

Now you can analyze the d function with set theory. To anyone who's familiar with the game, d is clearly non-injective. Let s0 = {} be the empty board state and s1 = { (0, 0) } be the state with the origin as the only living cell. Do the math and you'll see d(s0) = d(s1) = {}. You have two inputs mapping to the same output. This is exactly the case with f(x) = x^2!

You seem to be fascinated by the idea that you can bear witness to the previous states, despite the fact that d is a pure function. The trick here is that even though the function throws away information, you are not required to throw it away.

Say for instance, have three pieces of paper. You start with some Life state, s0. You write s0 on the first piece of paper. You calculate d(s0) and write it on the second. You then calculate d(d(s0)) and write it down on the third. Take the SECOND piece of paper, tear it up, and throw it away. Now ask yourself, what was the predecessor to d(d(s0))? Can you figure it out unambiguously? The answer is yes. Because you know the original state, you can figure out all states that succeed it.

To make an analogy to the squaring function, suppose you know that x^2 = 14 and that |x| = x. Can you tell me what x is equal to with certainty? The answer is yes. The reason is that, while you don't know what x is a priori, you do know that x = 4 or x = -4. And out of those two choices, only one satisfies |x| = x: |4| = 4. So you KNOW the answer is x, even though f(x) = x^2 throws away information. And the reason you know this is because that information could be retrieved elsewhere.

 So, what do you think? Do you think that when I give the expression "3+2+1" I am expressing one value or multiple values?
Again, be careful about how you say stuff. You are using "value" in an unusual way here. A value is a "final value" an expression can take on after you evaluate it. (Note, it's evalueate, meaning to give a value to something). In computing, we often talk about an "eval" function. Instead of working on numbers or life states, the eval function from expressions (like "3+2+1") to values (like "6"). And if you learn anything about lisp, lambda calculus, ML or any of those good things :) you'll find that eval is definitely NOT injective. Why? Because eval("3+2+1") = eval("5+1") = 6. And unlike the square function, where you only throw away the sign of a number, eval throws away just about everything in the computation. It throws away all the steps it took to get from the expression to the value. And because of this, if you want to go "backwards", going from a value to an expression, you have to know a LOT of extra information to get a unique answer. For example, you might have to say "I want an expression which evaluates to 6 which is of the form x + y + z" where x, y, and z are all values and where x + 2 = y + 1 = z.

 Eventually this went on to talk about the nature of logic, time, equality... it was very broad, but I wanted to hear what you'd think.
You seem to enjoy this kind of thought. If you're interested in learning more about this kind of thing, there's a number of avenues to pursue. Check out Godel, Escher, Bach by Hofstadter. It's a very readable book on the subject of symbolic logic, recursion, and computation.

Also, learn yourself some set theory and then check out Lambda Calculus, computational theory, and/or type theory. You should find them all very interesting if you like Life.

Good luck winning that argument.
P: 16
 Quote by Tac-Tics Who started a heated debate? :)
The forums were called free-thought forums, and the two primary antagonists were a math teacher, and a programmer. They held the position that 3+3 is in no way identical to 6, since my argument relied on identity, and that it had to do with "mapping" which is something I wouldn't be able to understand. I am no longer engaged in that debate, and it was about a half a year ago. I didn't want to inflame any posters by elaborating on what caused the debate to turn into a flaming frenzy, as they were primarily arguing that I didn't have enough credentials to be thinking about this when I was so sure that I was on to something.

 What you have stumbled upon here is the notion of irreversibility. Irreversibility is a very important concept in many areas of math, science, and computing.
You sound very knowledgeable, so I am relieved that you posted.

I read your entire post, but must be brief because I will have to leave for work. I will probably quote it through and through later, but I need to say that my use of "exist" is simply an extrapolation using Pan-Computationalism. For instance, in terms of logic, if 3+3 is true, then 6 is true. If 3+3 is false, then 6 is false. Likewise, if "f" or "Conway's life" is true, then "a state with a lone blue square" is not true. Now apply this to the universe, and if Pan-computationalism is correct, then these prior states are not true, and we tend to call this property "non existent". The only true thing would be the stable-point of the simulation. In fact, this sequential chucking of the old false, and in with the new truer, seems a lot like the passage of time itself.
P: 810
 Quote by Neveos The forums were called free-thought forums, and the two primary antagonists were a math teacher, and a programmer.
The problems faced by a math teacher are far disjoint from those of someone who pursues math out of enjoyment. A math teacher's primary job is to convey methods and algorithms to students who do not appreciate them :)

 Quote by Neveos They held the position that 3+3 is in no way identical to 6, since my argument relied on identity.
I'm not sure what you mean by "relied on identity" here, but when dealing with formal systems, you can have several different notions of "equal". Written on paper, the letters used to write "3+3" and "6" are clearly distinct. But the VALUE both those expressions represent are equal, and so in a sense, the two are equal. We might say they are "equal-valued", but usually since this is the most useful form of equality, we drop the formalities.

 Quote by Neveos my use of "exist" is simply an extrapolation using Pan-Computationalism. For instance, in terms of logic, if 3+3 is true, then 6 is true. If 3+3 is false, then 6 is false. Likewise, if "f" or "Conway's life" is true, then "a state with a lone blue square" is not true.
Pan-Computationalism? Never heard of it.

But saying "3+3 is true" doesn't make sense. Only statements can be true or false. To be a statement, you need a verb in there. "Equals" or "is less than" or "is a prime number" or "has a unique predecessor" or "has a unique inverse" are all "verbs" (we usually call them predicates).
 P: 367 3+3 has a truth value if you're programming in most languages :P all non-zero integers are True
P: 810
 Quote by wisvuze 3+3 has a truth value if you're programming in most languages :P all non-zero integers are True
In some languages, like C or Python, yes.

However, in languages like Java, C#, ML-derivatives (SML, Ocaml), Haskell, and a ton of other languages, this isn't so. At best, the conditional statements in those languages can be thought to insert an implicit coercion function (bool(x) in Python, !!x in C).

And in other languages still (Ruby, Common Lisp), 0 is actually a true value.

But the point is I don't think the OP intended that. These constructs are notational conveniences only.
P: 367
 Quote by Neveos So, what do you think? Do you think that when I give the expression "3+2+1" I am expressing one value or multiple values?
3+2 + 1 is 6. It is not 3, it is not 2 and it is not 1. + is an operation, so the value of the expression is changed with it, the value WOULD have been 3.. if it wasn't added with 2.. the value would have been 5, if it wasn't added with 1.. But alas, we added 2 and 1 onto 3 so the value is 6.
P: 367
 Quote by Tac-Tics In some languages, like C or Python, yes. However, in languages like Java, C#, ML-derivatives (SML, Ocaml), Haskell, and a ton of other languages, this isn't so. At best, the conditional statements in those languages can be thought to insert an implicit coercion function (bool(x) in Python, !!x in C). And in other languages still (Ruby, Common Lisp), 0 is actually a true value. But the point is I don't think the OP intended that. These constructs are notational conveniences only.
yes, well.. I guess I shouldn't have said most, my narrow scope of consideration seemed to have only included C, C++, python .. et c hehehe
P: 16
 Quote by Tac-Tics I'm not sure what you mean by "relied on identity" here, but when dealing with formal systems, you can have several different notions of "equal". Written on paper, the letters used to write "3+3" and "6" are clearly distinct. But the VALUE both those expressions represent are equal, and so in a sense, the two are equal. We might say they are "equal-valued", but usually since this is the most useful form of equality, we drop the formalities.
The key issue is that the expressions can look different, but the value is identical. They reference the same thing. So, when I ascribe some property to value of "3+3", I ascribe the same property to the value of 6. Likewise, when I ascribe some property to the value of f(x), then I ascribe the same property to the value of y. In other words, I make no reference to the value of x. f(x) is a restatement of y.

 Pan-Computationalism? Never heard of it.
The idea is that energy is reducible to information, and the interactions of all these values is calculable. If this interplay were represented in a computer program, it would appear as though the the passage of time in the universe could be represented as a cellular automaton.

Since I was originally arguing for Omega Point theory, an optimistic theory on how the universe ends, I was arguing that there is sometimes a special property attributable to the end of a process as opposed to the beginning, such that the end is more important than the beginning for understanding the process altogether. I was arguing that in the universe, as in any math problem, the end of the evaluative process (thanks for the word) is a simpler representation of what has always been in question. The end of the process and the beginning are identical in what they represent, and that the end of the Universe is a better representation of the Universe, just as we would say 6 is a better representation of the value:6 than 3+3. The reason we can essentially "throw away" the prior states when evaluating the Universe, is precisely that, a previous state and a future state are identical in value.

 But saying "3+3 is true" doesn't make sense. Only statements can be true or false. To be a statement, you need a verb in there. "Equals" or "is less than" or "is a prime number" or "has a unique predecessor" or "has a unique inverse" are all "verbs" (we usually call them predicates).
I was entertaining a response that 6 is a condition, like sleeping, but regardless, this is why "exists" is being used. If a dog exists, then an animal exists. When I say a "dog is true", I mean a "dog exists" is a true statement. So if 6 dogs exist, "3+3" dogs exist. The point being, the truth value of some statement, takes into account the full evaluation of any mathematical problem. So if f(x)=6 and if "f(x) dogs exist" is true, then "6 dogs exist" is true. "x dogs exist" would have no truth value based on that statement, even if we may have consider "x dogs" when coming to understand the value of "f(x)". This is why we can "throw away" the input.
P: 810
 Quote by Neveos I was entertaining a response that 6 is a condition, like sleeping, but regardless, this is why "exists" is being used. If a dog exists, then an animal exists. When I say a "dog is true", I mean a "dog exists" is a true statement. So if 6 dogs exist, "3+3" dogs exist. The point being, the truth value of some statement, takes into account the full evaluation of any mathematical problem. So if f(x)=6 and if "f(x) dogs exist" is true, then "6 dogs exist" is true. "x dogs exist" would have no truth value based on that statement, even if we may have consider "x dogs" when coming to understand the value of "f(x)". This is why we can "throw away" the input.
Your framework for working with logic here is clunky. Predicates are a much more natural way to make statements in logic. Additionally, "exists" is a confusing word, because the phrase "there exists" is a meaningful part of quantified logic systems (for example: "there exists a number x such that 3 + 3 = x").

In logic, as in algebra, equal statements are completely interchangeable inside the system. In other words, "6" is completely indistinguishable from "3+3" INSIDE the system. Outside the system, of course, they are spelled differently ("6" is one symbol, whereas "3+3" takes up three symbols).

If you want to distinguish between different spellings, you have to elevate expressions to first-class objects in the system. In programming languages, you can usually do this using a string object (though sometimes we use a more structured data type, such as a list or a tree, but for now, I'll just use the word string).

When we are dealing with strings, we can now distinguish between "6" and "3+3". They are no longer equal. However, by using the eval method I talked about earlier, we can still relate them: eval("6") = eval("3 + 3") = 6. While the spellings of these two expressions are different, the value they represent is the same.
 P: 16 Well, then, the next step is to realize the profundity of the notion that input is not necessarily true despite the containing statement being true. For something to be the height of Paul Bunyan, for instance, there is a reference to a particular height, not to Paul Bunyan. Paul Bunyan does not have to exist, but his height does. If the Universe is a giant case computation, then this may well apply to every past state, and every past particle of that state.

 Related Discussions General Discussion 31 Engineering, Comp Sci, & Technology Homework 0 Introductory Physics Homework 3 Electrical Engineering 9 Math & Science Software 43