Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

It's very important to note here that 0^0=1 is a shorthand and not a truth.

Mathematicians are absolutely not stating that they have proven, or that it is true, that 0^0=1. It is a definition, not a claim of equality. They're not saying "0^0 is 1" in the sense that they say "1+1 is 2" or "0.999... is 1". They're saying "we define 0^0 to be 1". The difference is more than just pedantry, it strikes at the core of why mathematics is the most powerful tool for determining truth that humanity has either discovered or invented (hat tip to anyone familiar with that debate).

One of the cold, austere, beauties of mathematics* is that if you do not accept a definition, you can reject it as false and reason with the result. To give the traditional example, if you accept as true that two parallel lines never intersect, then along with the other 4 of Euclid's Axioms you can prove all of Euclidian Geometry (what you learn in high school). If you do not accept it as true (an explicitly accept it as false), then you can prove all of Hyperbolic Geometry (one form of non-Euclidian Geometry).

In the case here, you're free to reject the convention that defines 0^0 as 1 and reason with the result; you will not break any mathematics. But you should know that mathematicians have never run into any issues with this convention--or can handle it trivially when they arise--so you're only adding a lot of work for yourself.

When you really think about it, it fills you with awe. It's awesome.

*“Mathematics, rightly viewed, possesses not only truth, but supreme beauty—a beauty cold and austere, like that of sculpture, without appeal to any part of our weaker nature, without the gorgeous trappings of painting or music, yet sublimely pure, and capable of a stern perfection such as only the greatest art can show.” -Bertrand Russell



In a certain sense, "1+1 is 2" is also merely a definition, in the same sense that "0^0 is 1" is a definition. Addition can be formally defined in mathematics; we habitually omit this definition because it is tedious, and because addition is such an intuitive operation that we do not require a definition in order to reason about it.

Much as the question "what if the parallel axiom didn't hold?" leads to alternative geometries, the question "what if addition didn't work in the same way?" (or "how can we generalize addition?") leads to some basic notions in abstract algebra.


This is simply wrong. 1+1=2 is the same kind of statement as 2^1=2 - it follows from the definition of the operation and from a general rule (it would be absurd here to say that 2^1 is the definition of 2, or that 2^1=2 is part of the definition of ^). 0^0 is just a meaningless symbol unless given explicit definition. There is no popular set of axioms where 1+1=2 is taken as an axiom - it is always proven. The symbol 2 is not defined as 1+1.

Conceptually this reflects the fact that knowing what 2 means is different from knowing what 1 means and what addition means. In principle a computer can correctly recognize 2 apples as being 2 apples without knowing anything about addition and without being able to recognize 1 apple.


This is a good point. Your grandparent's original distinction was that 1+1=2, just as 2^1=2, follows from a definition while 0^0=1 is immediately defined. However, the parent's still valid point was clearly that even the plus operator is in the larger sense just as arbitrary as the definition of 0^0, concurring with the overall theme of this thread that mathematics ultimately gives no credibility to intuition.


What do you think the definition of ^ is then?

The ^ operator is defined as:

  0^0 = 1
  x^y = exp(ylog(x))  if  x != 0
  0^y = 0             if  y != 0
Or similarly set theoretically.


I'm happier starting with the natural numbers, and just defining m^n as m multiplied by itself n times. Everyone gets that this is the point of exponentiation of natural numbers, and it has the obvious recursive definition:

    m^0 = 1
    m^n = m^(n-1).
And now 0^0 = 1 follows immediately, just as it does for 0+0 = 0 and the recursive definition of addition in terms of successor.

After that, I consider the question of what x^y means for non naturals as motivated largely by considerations of algebraic and analytic extension. We get negative exponents simply by extending the operation with the requirement that

    m^0 = 1
    m^(n+p) = m^n*m^p.
We get rational exponents by extending the operation with the requirement that

    (m^n)^p = m^(n*p).
We get real exponents by extending the operation to the limits where they exist. We get complex exponents by extending the operation to the largest analytic extension.

The tension then is that the real and complex extensions don't "confirm" the original reasonable setting of 0^0=1, but I personally find it more objectionable poking a hole in the function, when it was so clear in the case of natural numbers that 0^0 should be 1 (and see the set theoretic and category theoretic accounts for more reasons why this is clear).


Most real numbers only exist in fever dreams and acid trips, anyway.


Whatever it is, 2^1=2 is not part of it - it follows from it.


Uhm, anything that is part of a definition follows from that definition.

`A and B implies A' and so on.

In the end a function, in the mathematical sense, is just a long (possibly infinite) table of `from' and `to' values. We could argue that one definition of ^ is more or less complex than another, for some definition of complexity, but I'm not sure which would win, and if it would be useful.


"Follows" in the sense that it is not an axiom - it has a proof of more than one line in the sense of the Hilbert system. Seeing functions as collections of ordered pairs tells us nothing here.

Your definition of ^ doesn't directly tell me that 2^1=2. It does tell me however that 0^0=1.


Isn't that a circular definition, since, exp is e^x?


We can just define exp as:

  exp(x) = 1 + x/1! + x*x/2! + x*x*x/3! + ...


If one defines x^y this way, one usually defines exp by a power series, and then defines e as the number such that e^x = exp(x).


Or of course just e = exp(1)


>There is no popular set of axioms where 1+1=2 is taken as an axiom - it is always proven.

I would love to see a proof of 1+1=2. For example in the case of elliptic curves, as far as I know addition is simply an axiom. E.g. A+A'=0=inf , where inf is the point at infinity and A' is the reflection of A.

Math is not related to nature. Try to reason your way to matrix multiplication with apples: A * B != B * A


Using the Peano axioms, we need to prove that S(0)+S(0)=S(S(0)).

From the definition of +: S(0)+S(0)=S(S(0)+0) Again using the definition of +: S(0)+0=S(0). And we get: S(0)+S(0)=S(S(0))

Q.E.D.

There is also a famous proof by Whitehead and Russell on page 379 of Principia Mathematica: http://quod.lib.umich.edu/cgi/t/text/pageviewer-idx?c=umhist...


Thank you, I didn't know you could prove that!

I believe my disagreement was specifically about this (quoted):

> In principle a computer can correctly recognize 2 apples as

> being 2 apples without knowing anything about addition and

> without being able to recognize 1 apple.

I have a hard time seeing this. If I am not mistaken again, there is no definition of the symbol 2 that does not include addition. The proof above doesn't really prove this either as Peano's axiom rely on the definition of "successor". Successor definition: "a+1 is the successor of a".

http://mathworld.wolfram.com/PeanosAxioms.html

http://mathworld.wolfram.com/Successor.html


See the edit in my reply to tomp. In the Peano axioms, 2 is defined as S(S(0)), not as S(0)+1. The correct way to think about this is to ignore any inclination to give those symbols any "real world" meaning. From the point of view of the formal system - they are just strings, and the only thing we know about them is how to manipulate them to form other strings. Under this perspective, the connection between S(S(0)) and S(0)+1, or in general between S(a) and a+1, is again something which requires proof: S(a) = S(a+0) = a + S(0).

A computer can be given an explicit map between the symbols S(0), S(S(0)), s(S(S(0))), ... and 1,2,3..., so to identify S(S(S(S(S(S(0)))))) with 6 - it wouldn't need to know anything at all about + or about 1.

Edit: also consider the following quote from Wittgenstein's Philosophical Investigations and whether the person described needs to have any concept of 'addition' in order to correctly use numbers: "Now think of the following use of language: I send someone shopping. I give him a slip marked 'five red apples'. He takes the slip to the shopkeeper, who opens the drawer marked 'apples', then he looks up the word 'red' in a table and finds a colour sample opposite it; then he says the series of cardinal numbers--I assume that he knows them by heart--up to the word 'five' and for each number he takes an apple of the same colour as the sample out of the drawer.--It is in this and simlar ways that one operates with words--"But how does he know where and how he is to look up the word 'red' and what he is to do with the word 'five'?" ---Well, I assume that he 'acts' as I have described. Explanations come to an end somewhere.--But what is the meaning of the word 'five'? --No such thing was in question here, only how the word 'five' is used."


This is quite beyond my knowledge, I like the Wittgenstein philosophy, but I would still argue:

You cannot calculate S^(x+1)(0) before the result of S^x(0) is known.

To calculate S^6(0) you start by calculating S(0) ----> It's not possible to "identify S^6(0) with 6" if you haven't calculated S(0) first, because you cannot know S^6(0) at this point.


The computer has a table in memory that tells it S^6(0) = 6 (or equivalently O O O O O O = 6 apples). When it sees a symbol - for example S^6(0) - it searches this table for the same symbol, and then outputs the corresponding number. In no stage of this process does the computer "calculate" anything - it doesn't even need to know that S^5(0)=5 in order to find that S^6(0)=6. In fact S^5 might not even be in the table.


Here is a simple definition of the natural numbers and addition, in Haskell:

    data Nat = Zero | Suc Nat

    plus :: (Nat, Nat) -> Nat
    plus (Zero, y) = y                  -- axiom 1
    plus (Suc x, y) = Suc (plus (x, y)) -- axiom 2

    one = Suc Zero
    two = Suc one
Here is a proof that plus (one, one) = two:

    plus (Suc Zero, Suc Zero)
    = Suc (plus (Zero, Suc Zero))  [by axiom 2]
    = Suc (Suc Zero)               [by axiom 1]


Can you please translate that to mathematics? My request was regarding a formal mathematical proof.


The code I gave translates easily into Agda, a computerized proof checker, and as such more formal than most mathematics. However, here's the same thing in a modernized version of Peano arithmetic. We assume all the usual properties of equality: reflexivity, symmetry, transitivity, and substitution.

    -- Axioms (only 1 and 2 are relevant)
    1. 0 ∈ N
    2. ∀ x∈N. S(x) ∈ N
    3. ∀ x∈N. 0 ≠ S(x)
    4. ∀ x∈N, y∈N. S(x) = S(y) ⊃ x = y
    5. P(0) ∧ (∀ x∈N. P(x) ⊃ P(S(x))) ⊃ ∀ x∈N. P(x)

    -- Definition of addition
    6. ∀ a∈N. a + 0 = a
    7. ∀ a,b ∈ N. a + S(b) = S(a+b)

    -- Proof that S(0) + S(0) = S(S(0))
    9. S(0) ∈ N                     [from 2 and 1]
    10. S(0) + S(0) = S(S(0) + 0)   [from 7 and 9]
    11. S(0) + 0 = S(0)             [from 6 and 9]
    12. S(S(0) + 0) = S(S(0))       [substitution of equals, from 11]
    13. S(0) + S(0) = S(S(0))       [transitivity from 10 and 12]
Edit: Ah, I see I was beaten to it by pavelrub.


Maybe your parent meant that "1 + 1 = 2" is the definition of "2", in the sense that we write the symbol "2" to denote the Peano successor of "1", the Peano successor of "0", which is not a successor.


Maybe. Formally this is inaccurate as the successor function is not the addition function, and one has to prove that S(S(0))=S(0)+S(0).

Edit: it should also be noted that this equality shouldn't seem "obvious": the name "successor" here is misleading, as it automatically links to our everyday understanding of a successor as being "the next number", in which case it is indeed obvious. But formally it's just a meaningless symbol that can be changed to other meaningless symbols by certain meaningless rules. Our everyday life association of (apple) -> S(0), (apple,apple)->S(S(0)) is then a kind of a model for those meaningless things, but from within the formal system - they have no meaning.

In general I also do not like the invocation of formal arguments here, I think it misses the point. The bigger issue is that for us humans there is an obvious difference in kind between 1+1=2 and 0^0=1 - this should be obvious. Trying to hide this difference by appealing to different kinds of language trickery and formalism is an indication of doing something wrong, not of discovering anything new. The difference is still there, and we should understand why it's there, not force it to disappear (compare to the claim that every human act is egoistic in nature - what information does it really give us about the human nature?).


I did not in fact mean that 2 is defined as 1+1; you (and several others) are correct in saying that 1+1=2 requires proof for all reasonable definitions of +. 0^0 = 1 follows much more directly from the definitions in which it is true. My overall point has been articulated by arketyp in a sibling post to tomp's; like ^, + is "just a definition" which we arranged so as to line up with our intuitions.

I disagree with your assertion that 1+1=2 and 0^0=1 are of completely diferent kinds. That depends on what intuitive angle you approach them from; my intuition for ^ is that it is the iteration of multiplication, and in this context the only sensible definition is that x^0 = 1 (the unit of multiplication), for any x. The generalization to continuous bases and exponents should preserve this property.

But this is certainly a matter of taste, and certainly you'll find more disagreement here than in the matter of 1+1=2. What this tells us about human nature, I think, is not much: humans will disagree more when things get more complicated (^ is more complicated/abstract than +) and there is more room for disagreement.


I agree with the point you're making, but I want to be a little pedantic: It's true that addition is a definition, but 1+1=2 is not--it logically follows from the definition of addition.


It took Alfred Whitehead and Bertrand Russell 379 pages to prove that it "logically follows", and that was before they even defined addition! http://quod.lib.umich.edu/u/umhistmath/aat3201.0001.001/401?...


Whitehead & Russell didn't have the proof machinery we have today; they were inventing the wheel, and they did it badly. (Which is not to insult their achievement. Note that I say inventing the wheel, not reinventing it.)


It's a definition of what "2" means.


It's one of the possible definitions. You could as well define next(x) = min(y such as y>x) and define 2 as next(next(0)) (0 can be defined as either x such as for all y y+x = y, or as x such that for all y x<y, depending on what set you are working with). Proving that 2 is 1+1 would be a theorem then. Of course, that works only for integers :)


I was always under the impression that 2 is shorthand for s(s(0)).


It depends on where you are coming from. If your context are ordinal numbers then you are right and a typical definition of 0 is {} and of s(x) is x∪{x}. But if you working with finite fields for example then you only have an addition operation. "Successor" does not make much sense there, since 1+1+…+1=0 for the right amount of additions (you are calculating modulo a prime). Since 0+1:=1 is trivial you usually start with 1 and define 2 as 1+1, 3 as 1+1+1…


You don't usually define 2 at all when talking about abstract structures (it makes little sense to call the polynomial 2 as being "the 2" of the field of rational functions, for example). 2 is something that exists only in N, and talking about it in other structures makes sense only when you are referring to a ring homomorphism Z->F or something similar.


That definitely is a more clean way to look at the matter, yes. Nonetheless I've seen the definition I stated above a few times and the merit is that you do not have to take an implicit indirection every time you state something like "2≠0". And as a ring homomorphism ℤ->R for any ring R with identity element is already completely defined and in effect identical to the definition "2:=1+1…" for every positive whole number, it is really just a different way of formulating the same idea.


My point is that when talking about the definition of 2, it is enough to restrict ourselves to the natural numbers - since that is where 2 is coming from. If we then want to extend this symbol to other places - the meaning of such an extension will be given by a map, not by requiring a different definition. That is - there is only one 2, everything else is ψ(2) for the homomorphism ψ:Z->R.


Not quite, just as in calculus you end up rediscovering some old geometry formulas there are branches of mathematics where you end up rediscovering 2 such that 1 + 1 equals it. Other options include 1 + 1 = 0 or 1+1 = 1.


But 1+1=0 or 1+1=1 happens because you are redefining the operator + (sometimes subtly, like using it over Z2), so what rickhanlonii said still holds. 1+1 is 2 if you're using the usual definition of sum, i.e., addition over integers or a superset of integers.


You missed the point 1 + 1 = 2 depends on the definition of '1', '+', '=', and '2'. The first case where this maters is probably binary where '2' does not exist, but that's hardly the only time 1+1 != 2.


Its funny how quickly the argument devolved into an argument over how (or even whether) 1 + 1 = 2


It is not a devolution. The discussion whether 1+1=2 is a definition, an axiom, or a theorem is very similar to the discussion of "0^0=1". In each case we are looking at different way to construct a useful mathematic out of different sets of definitions and axioms. Regarding 0^0 there is no clear winner, as - like the blog shows - there are many incompatible advantages one would get from 0^0:=1 or 0^0:=0. With "1+1=2" there is no controversy, as the many different definitions or axioms essentially result in the same nomenclature.

But as an example of a rather unintuitive result regarding "1+1" look at the field F_2 (or GF(2)). It has two elements, 0 and 1. So when I'm writing "1" or "0" I am referring to these elements. Nonetheless with a typical definition used in many branches of mathematics I define 2:=1+1, 3:=1+1+1,… In F_2 the addition operation is defined as 0+0=0, 0+1=1, 1+0=1, and… 1+1=0. I thus get 0=1+1=2, 1=(1+1)+1=3, 0=((1+1)+1)+1)=4. Note that this is essentially calculation mod 2. But whereas outside of algebra this is often seen as a different set of equalities ("1+1≡0 mod 2") in algebra F_2 is just another field alongside of the rational, the real and the imaginary numbers.


There are a couple of ways to define this part of mathematics, I believe I have seen some definitions that do in fact define `1 + 1 = 2`


This is not true. A very natural way to define a^b is as the number of functions for a set with "b" elements to a set with "a" elements. In this case there is exactly one function from the empty set to the empty set, and we have proven 0^0 = 1. This is no different than defining addition and then proving 1+1 = 2.


I prefer thinking about 0^0 = 1 as an empty product (https://en.wikipedia.org/wiki/Empty_product), since it generalizes nicely to any operation with an identity element. That is, if you apply any operation zero times, the result is that operation's identity. It's interesting that the analogous empty sum, 0*1 = 0, is a complete non-issue.


But here's your problem:

infinity * n = infinity, right?

0 * n = 0, right?

0 * infinity = ?

Ok, this is relevant here particularly because:

Lim 1/x as x -> 0 from the positive side is infinity, right?

So 0 * that is.....

lim 1/x as x -> from the negative side is negative infinity, right?

So 0 * that is.....

That's why 0/0 doesn't work as such. You don't know how 0 is derived or what it means. If we have x^2/x, and take the limit as x -> 0, we get 0. If we take x/x^2 and take the limit as x -> 0 we get +/- infinity.

But that doesn't mean that x/x or x^2/x are not continuous functions, any more than 1 or x are not continuous functions.


You are conflating the limiting behavior of a function with the value of a function. In (standard) analysis, there is no actual value called infinity - it's just used to describe how a function behaves arbitrarily close to a given value.

When you have a 0^0 limiting form (or 0/0, or 0 * infinity), the function's behavior is indeterminate. The "0" and "infinity" you're looking at aren't precisely 0 or infinity, but only arbitrarily close. The actual behavior of the function depends on the expressions that approach 0 and infinity, hence `x/(x+1)` and `x/e^x` having different limiting behaviors as x increases without bound.

But if you are literally considering the function at a specific point which produces a so-called indeterminate form, the answer is simpler. In some cases, the function is undefined (e.g. 1/x where x=0). In the case of 0^0, there is a precise value we can assign: 1. And this doesn't conflict with the 0^0 limiting form: the limit of a function at a point can be different from the actual value of the function at said point.

A quote of Knuth, taken from Wikipedia (http://en.wikipedia.org/wiki/Exponentiation#Zero_to_the_powe...):

> Knuth (1992) contends strongly that 0^0 "has to be 1", drawing a distinction between the value 0^0, which should equal 1 as advocated by Libri, and the limiting form 0^0 (an abbreviation for a limit of f(x)^g(x) where f(x), g(x) -> 0), which is necessarily an indeterminate form as listed by Cauchy: "Both Cauchy and Libri were right, but Libri and his defenders did not understand why truth was on their side."


Regarding Knuth's point, that's a good one, since f(x) and g(x) are not necessarily the same.


There is a bit of conflation going on here - the notation a^b being discussed is exponentiation of real numbers (or complex if you'd like to extend it that far). Of course, that notation is what inspired a^b being used to denote the number of maps from a set with cardinality b to a set with cardinality a (and the notation A^B to denote the set of all maps from B to A), but set theory was developed centuries after the likes of calculus and other important developments that touch on the reasoning used in the article linked in the OP.


You're just pushing the arbitrariness of defining things one step further to the definition of a number. It makes it no less arbitrary that you've defined it and force us to accept the definition to get to your conclusion.


There is a very natural definition of numbers as sets. We define 0 to be the empty set and we define the successor function by S(x) = {x} union x. Then the natural numbers are the smallest set containing 0 and closed under the successor operation. This is the standard way to define the natural numbers within ZFC set theory.

This is admittedly very formal and not how the lay person thinks of natural numbers. However, it gets to the point of that although we may lie and say 0^0 = 1 is just a convention it is in fact a theorem within the system we work.


> within the system we work.

within a system we work. Which is the point. The system you are working in determines which value you use. You are more an algebraist than analyst.


Levying the "authority" of ZFC doesn't change the fact that your definition is still arbitrary. I'm certain you could pick a different definition of natural numbers within ZFC and get 0^0 = 0.


The given definition only tells you what natural numbers are; it doesn't directly tell you what 0^0 is. For that, the set theoretic definition of exponentiation was provided.

That definition is not arbitrary, but is an instance of the very general definition of exponentiation given in category theory. Accordingly, A^B is the set of maps from B to A, and for non-empty finite sets, the number of such maps is the number of elements in A raised to the number of elements in B. If you extend this to cover empty and infinite sets, you get the full definition of cardinal exponentiation, which has 0^0 = 1 and has other cute things like

2^(the cardinal of the natural numbers) = the cardinal of the reals.

There are a few obviously good properties about the given definition of natural numbers (the Von-Neumann ordinals), and one of them is that the size of each natural number is, well, that natural number.

    0 = {} and contains 0 elements.
    1 = {0} and contains 1 element.
    2 = {0,1} and contains 2 elements.
    3 = {0,1,2} and contains 3 elements.
And so on. For any definition of natural numbers which has this feature, you find that when you consider their category where morphisms are all the functions between them, then again, the exponential (in the category theoretic sense) is precisely the one expected in arithmetic, and 0^0 = 1.


A lecture on category theory and ZFC ignores my point.

To run with your example: why must a definition of natural numbers have to involve sets of certain cardinality? You're telling me that because some people came up with a more general definition for natural numbers after the fact, that makes one definition of natural numbers more 'natural' than another.

I claim you're just reinforcing my point: the definitions were chosen to make natural numbers a specific instance. Everything here is chosen in some way to further some goal (usually mathematical aesthetics), and eventually you get down to the bottom and what do you have? A bunch of definitions that one may choose to use or not.

So whether I want to impose 0^0 = 1 by fiat is equivalent to whether I want to assume enough foundations of category theory to prove 0^0 = 1 in that system. You (and mathgrad) are just under the spell that because there is a whole lot more mathematics floating around (and big words and important people working in those fields) it somehow makes the latter less arbitrarily motivated by a desire to make theorems work out nicely. It's certainly pleasing that it does, but that doesn't make it somehow deeper or more natural than a different formalization in which 0^0 = 0. It just serves a different purpose.

This is the entire point of the OP and the original comment: you can generalize the meaning of 0 and 1 and a^b to make it suit your need to express certain theorems and patterns, and that is a key part of the power of mathematics. Whether it's a "truth" or an "axiom" just depends on how far down the rabbit hole you're willing to go, and the distinction is irrelevant because as far as deciding what 0^0 should be they're equivalent.


I have no problem with the idea that mathematicians can improve on definitions and make them more natural, especially as they learn more abstraction.

And I don't think it was after the fact, or a generalisation of anything, to say that the natural numbers are the classes of sets with their own cardinality. It was the definition given by Frege, who I believe was the first person with the audacity to define something so primitive. And defining natural numbers in terms of their cardinality strikes me as entirely natural, once you have it that natural numbers are just the finite numbers you use to count stuff (i.e. cardinal numbers --- counting stuff by forming one-one correspondences).

Frege's definition is not the one given by mathgrad, because it doesn't work in ZFC. We can't use equivalence classes, so instead, we pick out canonical representatives of the classes, which is a good enough compromise.

That said, I don't think there is one definition of natural numbers to rule them all. I am personally quite fond of the Church numerals, where a natural number n is defined as the higher-order function which composes its argument with itself n times. I prefer the thought that what counting is about is the repetition of a single operation.

As for the rest, I am the spineless type of formalist who is happy to throw his hands up in the final analysis and say that all of mathematics is arbitrary. And so unlike the OP, I won't draw a distinction between 0^0=1, 1+1=2 or 0.999...=1. You can mangle all of these as much as you like, but so long as you keep the expressive power of arithmetic, you'll find an analogue of Turing equivalency to translate to the original.


I think this definition is somewhat non-standard for laypeople. Most people think of x^y to be defined as "x multiplied by itself y times" or something similar. By this definition, 0^0 is a convention/shorthand, not a truth.

I think the "functions from b to a" definition is useful to note too, though


That's a great point! Under that definition of a^b, 0^0=1 follows from the definition and is not itself defined. It's exactly the same as 1+1=2.

However, what I said is absolutely true for the definition of a^b that the author of the article is using. In that system, 0^0 does not follow from the definition, and must be defined itself (or not at all a la Cauchy). I should have made that more clear.


I agree that your definition is a very natural one, but I think your conclusion is mistaken. Defining a function in the same, set-theoretical terms (http://en.wikipedia.org/wiki/Implementation_of_mathematics_i...), a function is a subset of the cartesian product, and the Cartesian product of the empty set with itself is empty.

EDIT: I realize that you are right. The Cartesian product of the empty set with itself is empty, but it does have a subset, namely the empty set, which happens to be a function.

I'm not so sure this settles anything though. There is exactly one function 0 -> a for every non-empty set a and there is no function b -> 0 for any non-empty set b. Now you have to decide how to define a function to treat the case 0 -> 0. I'm no expert in set theory, but I would think this can be defined to be either without getting into any kind of trouble.


I think it's a little bit different. There are many natural ways of defining the expression a^b, which coincide when a and b are (say) positive integers, but there is basically only one way of defining 2 (namely, 1 + 1).


Look up Peano arithmetic to see how one proves 1+1 = 2 within the standard formal system.


Actually this gave me the idea: a^b is the number of mappings from set a to set b. Now, if set a is empty and set b is too, it is natural to believe that there are no mappings because there is nothing to map from or to.


A function is a relation for elements in a to elements in b such that for every element in a there is a unique element in b. This is vacuously true of the empty relation when a is empty.


I didnt discuss a function, I discussed a mapping. They are different constructs. Imagine the question like this: you have two groups of people, students and teachers. How many possible ways are there to assign students to teachers? To put it another way, how many arrows would it take pointing from the student to the teacher to illustrate every possible assignment? Now, if there are no students and no teachers, you have no arrows, not one.


So mapping is exactly a function, unless domain and codomain are empty, in which case it doesn't exist?

Empty set is as good and useful as nonempty ones, and you seen to have no problems with using them. Why do you find it hard to accept an empty function f: E -> X, where E is empty set, that doesn't associate any element of E with any element of X?


I am a mathematician I don't need examples. What is your formal definition of a mapping.

In mathematic it is normally used as a synonym for a morphism in a given category and in the category of sets this would be a function. So in our context a mapping is a function.


You're being obtuse. If you read what he was saying, it would be obvious that he didn't mean a formalized "mapping" and meant a binary relation. Instead of using this as an opportunity to evangelize maths and teach, you criticized him with a pretentious self-aggrandizing glory that Mathematicians already have such a bad reputation for.


> I am a mathematician I don't need examples.

Falser words were never spoken.


> I am a mathematician I don't need examples.

I gave the example not to teach you, but so that we could get away from terminology and get to meaning. Look at the question I posed: "how many arrows would it take pointing from the student to the teacher to illustrate every possible assignment?" So, if you have two students Alice and Eve, and two teachers Bob and Carl, there are four arrows: Alice->Bob, Alice->Carl, Eve->Bob, and Eve->Carl. How many arrows are there if there are no teachers and no students?


The number of arrows is |students x teachers|, every student paired with every teacher. From this you get a^0 = 0, but it also follows that a^b = b^a. This defines multiplication, not exponentiation. The problem is that you cannot illustrate the assigment where Eve is not paired with Bob using an arrow, but only by not using a one.


I see it as somewhat complex but in the end I sort of agree that it is a definition. Let's start with a problem:

0/0

The problem with this is not that the equation itself is meaningless. the limit of n/x as x->0 is infinity for any positive real number, and negative infinity for any negative real number. In essence 0/0 ends up reducing to 0 * infinity, which isn't very helpful.

I would argue that discontinuity in a form like this can never be unique to a single point in an otherwise continuous function, if the limit approached from both sides is the same, unless that point as a specific, defined value. This is because a point is arbitrarily small. The limit of 1/x as x->0 is discontinuous because from the negative side and the positive side, the limits are different, as anyone can see when you plot it on a graph.

However here we have x/x, and the limit stays at 1 from both sides. It may be formally undefined at the exact point of 0/0, but the limit from both sides is the same, and it remains constant as you get arbitrarily close. Therefore it is simpler, system-wise, to treat it as 1, than to make an exception for it.

> In the case here, you're free to reject the convention that defines 0^0 as 1 and reason with the result;

But you add complexity which is neither helpful nor desirable.


The relationship f(x)=x/x is only defined for x /= 0 and thus is not equivalent to 1. We can see this in [a] when we ask for the domain of the function, and thus we can redefine some function f' as a piecewise function which is defined to have f'(0)=1, but in proofs we must thus make sure to first prove that using f' as a substitute for f does not affect our result.

In one of the below posts we have the suggestion

> But what if you're in a context where you're not reasoning about continuous functions at all? Why would you have to be subject to reasoning that doesn't apply to your situation?

In this case you could either do the above, if you have to concern yourself with e.g. a domain of the set of real numbers arbitrarily close to the undefined location. Alternatively you could just define our original function f only for real numbers greater than 0, in which case you escape the necessity of redefining functions to be easier to work with.

[a]: http://www.wolframalpha.com/input/?i=domain+of+f%28x%29+%3D+...


> The relationship f(x)=x/x is only defined for x /= 0 and thus is not equivalent to 1.

If that's the case then:

x * f(x) = x cannot be equivalent to f(x) = x/x which breaks algebra in pretty fundamental ways (since the former would certainly be defined for 0 but the latter would not).

The second major problem is that it also breaks calculus. Let's start with a straight line: f(x) = 2x.

Now let's take the first derivative of this: f'(x) = 2x/x.

Does the line at the point where x = 0 have a slope or not? If this is discontinuous, then you have also broken calculus.

This gets as to why 0/0 is undefined, namely because when you cannot express it as a limit, and have no idea how both zeros are derived (and hence what they mean) you cannot give a specific number. You can come up with equations which for some value reduce to 0/0 but whose limits range from negative infinity all the way to positive infinity. But that doesnt mean that x/x is undefined where x = 0. x/x reduces to 1. Always. Anything else breaks higher mathematics generally.


> "x * f(x) = x cannot be equivalent to f(x) = x/x"

Sure it's equivalent, over a domain not including x=0. This does not break algebra any more than, say, restricting the domain of the square root (when working in the reals) to non-negative numbers. We work in restricted domains in mathematics all the time.

> " f'(x) = 2x/x"

f'(x) = lim (h->0) [2(x+h)-2x]/h. Since h is approaching (and therefore not equal to) zero, there is no problem. Any appearance of 0/0 in the problem is a result of an attempted (but unsuccessful, that is, indeterminate) evaluation -- it's not actually 0/0, it's 2h/h where h is close to but not equal to 0.

We don't need to define 0/0=1 in order to have either algebra or calculus work. We choose to define 0/0=1 in certain circumstances which make certain calculations go more smoothly, and we choose not to define 0/0 in other circumstances where it's either unnecessary or potentially misleading.


> This does not break algebra any more than, say, restricting the domain of the square root (when working in the reals) to non-negative numbers.

Sure it does, because if that is the case, you restrict your domain when you divide by a variable expression. If you divide both sides by x-1, then you effectively rule out 1 from the domain.

That's the problem.

Now this is not the same as 0/0. The point is that 0/0 is only undefined when it persists after simplification and only because you can't define a relationship between the two zeros.

I.e. 0/0 is undefined because 2x/x, 52x/x, and x^2/x give you three different answers as x->0. That doesn't mean that every function which has not been reduced and can transiently evauate to 0/0 is treated as non-continuous.

Regarding derivatives, this highlights the problem because to solve the first derivative of a variable to a simple exponent, you multiply by the exponent and divide by the variable (x^2 becomes 2x, 2x becomes 2, and so forth). What this means is that you may be dealing with a limit but the limit defines a function, which is something like 2x^2/x for the derivative of x^2 and 2x/x for the second derivative.

Unless you allow simplification before determining whether the function is continuous, these things don't make sense. If you allow reduction first, then x/x^2 is undefined where x = 0, but x/x is not, because you can reduce it to 1 before applying any further logic. Both may appear to evaluate to 0/0 however.

There are a huge number of things that seem to break in algebra and calculus if one treats x/x as non-continuous and undefined. The simpler solution is to allow reduction to 1 before determining that it is undefined. (of course 52x/x would reduce to 52 instead, again showing why 0/0 is oversimplifying the problem).


> "you restrict your domain when you divide by a variable expression"

Why is this a problem?

Whenever you perform an operation that has a restricted domain, you restrict your domain. This may result in an actual "not defined at x=1" result, or simply "the value at x=1 is found through an alternative method" result.

> "0/0 is only undefined when it persists after simplification"

When you're working in the context of limits, it wasn't an actual 0/0 to begin with; it was near-0/near-0, which is perfectly OK to simplify. The limit defines a function that already has a restricted domain -- h->0 means h is not actually zero. The expression naively evaluating to 0/0 simply tells you that you need to do more work to properly evaluate it -- 0/0 is not the actual result.

Note that using the limit to find the derivative gives you a function that you'd like to be continuous in x, but the divide-by-zero is in h. Consider f(x)=x^2. The derivative is

lim h->0 [(x+h)^2 - x^2 ] /h

lim h->0 [ x^2 + 2xh + h^2 - x^2 ] /h

lim h->0 [ 2xh + h^2 ] / h

lim h->0 [2x + h] * h/h

since h does NOT equal zero, we can treat h/h=1, and the limit trivially collapses to 2x. Note that we never had the variable x in the denominator of our fraction; we never placed a restriction on x or suggested anything about a discontinuity relative to x. We only restricted h, which was already restricted by the limit itself.


The expression 52x/x has a restricted domain as well (x /= 0). But that's normally not what you mean when you write it. It isn't often you really care about expressions like 52x/x; they are generally just intermediate steps in getting to a real solution.

For example: I have done a lot of work on some equation that is interesting to me, and finally I have reduced it to 5+yx=52x+5. Now obviously the rules of algebra let me subtract 5 from each side and be left with yx=52x, and this subtraction also has no effect on the domains for which our variables may be defined. All is well.

But dividing out the x is what we are concerned with now. Surely y=52 is a solution to the equation - why can this not be true for all values of x?

Well, for nonzero x we have y=52 and nobody will complain. For x=0, though, solving for y is problematic. Note that if x=0, y could be 1, or 33, or any number. If there is some function f such that y=f(x), then it follows that f(x) holds a unique value y for each input of x/=0, but for x=0 we cannot know what y might be; this is what we mean by undefined. Thus we say the domain of f(x) is the set of all real numbers x, such that x is not equal to zero.

If you have been told otherwise, or even gotten away with doing algebra or calculus under the assumption that the domain of our function f may include zero, you are taking a mathematical shortcut rather than performing formal analysis. It is not calculus nor algebra that is broken by saying f is undefined for x=0, but rather your (albeit practically useful) misconception of these systems.

I'll finish with some formal rules of algebra, to hammer this in:

- [P6] Existence of a multiplicative identity: a * 1 = 1 * a = a ; 1 /= 0.

- [P7] Existence of multiplicative inverses: a * a^(-1) = a^(-1) * a = 1, for a /= 0.

These are taken from page 9 of Spivak's Calculus, 3rd edition. He goes on to build the foundations of all of calculus from rules like these. Surely he would not present this as a fundamental axiom of his system, only to immediately (and silently) reject it and build a flawed calculus instead!

Indeed, on pg. 41, when defining functions, Spivak later writes (emphasis his):

> It is usually understood that a definition such as "k(x) = (1/x) + 1/(x-1), x /= 0, 1" can be shortened to "k(x) = (1/x) + 1/(x-1)"; in other words, unless the domain is explicitly restricted further, it is understood to consist of all numbers for which the definition makes any sense at all.


> Sure it does, because if that is the case, you restrict your domain when you divide by a variable expression. If you divide both sides by x-1, then you effectively rule out 1 from the domain. > That's the problem.

That's the problem that a mathematician must handle. The solution to the equation

  x * f(x) = x
is very simple: x is either 0 or such that f(x) = 1.


I see that you are defining 0/0 to be a value such that f(x) = x/x has no discontinuity at x=0. But your chosen value means that the function g(x) = x^2 / x is discontinuous at x=0, and the function h(x) = -x/x also has a discontinuity, etc.


I am defining continuity such that single point that is undefined does not break continuity if and only if it has the same limit when approached from both sides. This is because, as I say, a point is arbitrarily small and therefore if the limit is the same on both sides, it's simpler to treat it as still a continuous function.

Otherwise I think you get some problems which break algebra, because multiplying of dividing by variables can break the domains of functions.

If we have f(x) = 1, then this should be the same even if we multiply both sides by x. x * f(x) = x, which results in f(x) = x/x. You break algebra by allowing such straight-forward manipulations (which really are the core of algebra) to tamper with the original domain of the function.

Just as you can't just treat a square root as a core algebraic process (because it is not a function), you would no longer be able to divide by a variable, since that would be undefined wherever the variable is 0.

Edit Also it occurs to me that treating x/x as undefined at 0 would also man that the first derivative of f(x) = x would also be undefined at 0, which can't work either.

So therefore treating x/x as discontinuous at 0 breaks both algebra and calculus.


But what if you're in a context where you're not reasoning about continuous functions at all? Why would you have to be subject to reasoning that doesn't apply to your situation?


That's actually an interesting point. And actually it occurs to me that even in continuous equations you have a problem:

Does it matter if we are talking 0^x or x^0?

I would think that in the context of 0^x, you'd have a constant function of 0, but x^0 you'd have a constant function of 1. These have different limits as x -> 0.

I think you have just convinced me that 0^0 is undefined.

Edit: Ouch. 0^x can't be defined for a negative x, so that doesn't work. I am back to siding with 1.


> If you do not accept it as true (an explicitly accept it as false), then you can prove all of Hyperbolic Geometry

What is the equivalent in this analogy if you do not accept that 0^0=1 (i.e. accept that 0^0=0)?


This case isn't as exciting as the parallel postulate case; you're not going to get a whole new branch of mathematics, just a change in a lot of formulas/definitions/notations.

The example in the article is the binomial theorem. Another example is the definition of Taylor Series which defines 0! and 0^0 as 1 so that the series come out cleaner.

For reference, we use Taylor Series to define e, sin, cos and there's a really nice proof for e^(ipi)+1=0 using the Taylor Series for these three.


I think you break algebra if you start treating y = x^2/x as distinct from y = x, and the both the former and x/x have the same problem with x=0.

Edit:

As has occurred to me, you might actually have a point, in that x/x may be a continuous function, but so is 0^x, which gives you a different limit. So it may actually determine whether in context it makes sense to treat 0^0 as x/x or whether it makes sense to treat it as a limit of 0^x as x -> 0. This may be application dependent.

Edit2:

Ouch. 0^x can't be defined for negative numbers, so I am back to siding with 1 for reasons that any other answer breaks algebra.


y=x^2/x and y=x aren't the same thing though. The first is undefined at x=0, the second is not. How does this break algebra?


Because if you can't simplify, you can't treat them as the same, which is a fundamental premise of algebra.

I.e. the promise/premise of algebra is that if you take an equation, it remains equally valid when you add, subtract, multiply, or divide both sides by the same expression. If you treat these as distinct, then every division operation where you divide by a variable expression reduces the domain of possible answers.

This could have some very nasty corner cases where a division operation removes from the domain the answer you are looking for, and therefore renders an equation which could otherwise be solved undefined.

Hence my simple observation that in both algebra and calculus, we treat simplify equations before determining if they are continuous or not.

Here's a trivial example:

Solve for f(x) in the following equation (x + 2) * f(x) = x^2 + 4x + 4, where x = -2.

The problem you run into is that your first step is to simplify, so you divide both sides by x + 2, and therefore you end up with a division by 0 unless you are allowed to simplify before evaluating. Otherwise, you eliminate -2 from your domain and the answer is undefined. (The answer should be 0).


> "the promise/premise of algebra is that if you take an equation, it remains equally valid when you add, subtract, multiply, or divide both sides by the same expression"

No.

The promise/premise of algebra is that an equation remains equally valid when you perform valid algebraic operations on two equal quantities.

Division is defined as the inverse of multiplication. Multiplying by zero has no inverse, and thus, it is not valid to divide by zero. If you are in a circumstance where you want to divide to solve an equation, you must check to make sure you're not dividing by zero (and write a special case for any circumstance in which you might otherwise have divided by zero.)

> "Solve for f(x) in the following equation (x + 2) * f(x) = x^2 + 4x + 4, where x = -2."

The way you've written it, f(x) is undefined for x=-2. Any value I select for f(2) makes that expression true. Try it -- if f(2)=813, 0 * 813 = 4-8+4. That solution works.

You might prefer to define f(2)=0 because it makes f(x) continuous. But you have to define that value separately; you can't solve for it from the equation, because dividing by (x+2) is not a valid operation for x=-2. You could, alternatively, choose to define f(2)=7 or f(2)=-318 or any other value. Because you've written an equation that allows it.

That's the thing about mathematics. It's very carefully defined and very precise. Your inclination is to try to simplify first, but you're simplifying in a way that is not valid for x=-2 and thereby accidentally making an incorrect statement (that f(2) "should" be zero.) If you simplify properly, you'll see what ubercow said is true -- the solution is f(x)=x+2 except at x=-2, where f(-2) can be any number and therefore you have a continuum of possible solutions.


I don't really understand what you mean. You can never divide by zero. You can't treat the functions as the same because they are not the same function. It's not a fundamental premise of algebra that you should be able to.

The corner cases aren't nasty, you have to take care of them every time. Like with your example, the solution is f(x)=x+2, except where x=-2 where f(-2) can be any number. There are a continuum of solutions to the equation each with a different value of f at x=-2.


Can anyone recommend a really good book on mathematics that demonstrates the "beauty" of it? I'd love to really learn and understand about Fast Fourier Transforms and the like, but any book I have is from my old college days and is just so bloody tedious.

I used to really love maths when I was younger but it got beaten out of me by endless repetition and "now do Questions 1 - 50" tedium.

Now I get scared whenever I see the "summation" symbol.


I found abstract algebra to be really interesting. It kind of removes the concept of "numbers" and transitions it to operations on objects like sets or functions. You redefine operations like "addition" and "multiplication" to apply to these new objects, and see what happens. A whole bunch of interesting things fall out, many of them important to information encoding and error correction in practice.

For an example, see the concept of a Ring:

http://en.wikipedia.org/wiki/Ring_%28mathematics%29

Less directly related to math, I spent a joyous couple of hours back in college working through the Lambda Calculus wiki page, trying to every piece it. Once it "clicked" it became really fun to work through the examples.

http://en.wikipedia.org/wiki/Lambda_calculus

> Now I get scared whenever I see the "summation" symbol.

I'm not sure why, but I guess for me, removing the idea of "numbers" makes math suddenly fascinating. It's like dropping down a level to redefine what you thought was a well-defined concept (addition of numbers) as a generic operation for which numbers are simply one special case. Weird. :)


> book on mathematics that demonstrates the "beauty" of it

I'd say that you're asking wrong question. Yes, there're quite a few books intended to demonstrate the very thing you're asking for: beauty of mathematics. You are even likely to find some showcases interesting, might be somewhat beautiful. But essentially it won't be the same "beauty" that mathematicians see. It will be more like a thousand more-or-less scientific examples of how number φ appears in different places in our life, which isn't the essence of it obviously.

So if you're scared by "summation" symbol you're better to reconsider or forget about understanding "beauty of mathematics" forever. Because "beauty of math" is math itself.

About FFT: are you sure that you mean FFT? Because it's merely an algorithm to compute Discrete Fourier Transform. If you want to understand the Fourier Transformation itself, here's basic explanation: http://betterexplained.com/articles/an-interactive-guide-to-...

Anyway, here're some easy-to-read books about math considered good by various people:

  Hardy, "Mathematician's Apology"
  Hofstadter, "Gödel, Escher, Bach"
  Klein, "Mathematics and the Search for Knowledge" (he wrote many sci-pop books which I expect to be good, but I read only few of them, so I'll recommend only this one)
  Сонин, "Постижение совершенства" — a good one, but I don't know if it was ever translated to english, sorry


Agree, and you've basically described the concluding message in the last minute of this awesome video: https://www.youtube.com/watch?v=TINfzxSnnIE


Invented, obviously. ;)




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: