Mathematica 9 is now available
Services & Resources / Wolfram Forums / MathGroup Archive

MathGroup Archive 2009

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: 0^0 = 1?

  • To: mathgroup at
  • Subject: [mg95796] Re: 0^0 = 1?
  • From: Dave Seaman <dseaman at>
  • Date: Tue, 27 Jan 2009 07:01:01 -0500 (EST)
  • References: <gl7211$c8r$> <gl9mua$ajr$>

On Mon, 26 Jan 2009 02:48:43 +0000 (UTC), danl at wrote:
>> On Sat, 24 Jan 2009 11:17:16 +0000 (UTC), Daniel Lichtblau wrote:
>>> Dave Seaman wrote:
>>>> [...]
>>>> The value of x^y for cardinal numbers x and y is the cardinality of the
>>>> set of mappings from y into x.  In the case where x and y are the empty
>>>> set, there is exactly one such mapping.  Hence, 0^0 = 1.

>>> That's a definition from set theory. I doubt it plays nice in the
>>> complex plane. The definition of Power we go by is
>>> ower[a,b] == Exp[Log[a]*b]
>>> Among other advantages, it means branch cuts for Power are inherited
>>> from Log.

>> Branch cuts at 0 are not particularly relevant here, since Exp[-oo*0] =
>> Exp[anything*0] = Exp[0] = 1.

> I vastly prefer to keep -Infinity*0, and it's exponential, as undefined
> (Indeterminate, in Mathematica).

I can understand calling those undefined expressions, but not
Indeterminate.  Neither of those is a limit expression.

>>>> It's a theorem of ZF (as stated in Suppes, _Axiomatic_Set_Theory_) that
>>>> m^0 = 1 for every cardinal number m.

>>> I think the setting of cardinal numbers is not really a good choice for
>>> symbolic computation.

>> Because it doesn't support your preferred answer?

> Because it is quite difficult to use for math computation. I do not wish
> to spend time rehashing mathematics foundations disputes of 100 years ago,
> at least not when immersed in the Mathematica kernel. Even if I wanted to
> do that, I doubt I'd find the time.

It can be useful, as you suggest elsewhere, to distinguish between the
case of a discrete exponent (cardinal, integer, rational) and a
continuous (real, complex) one.

>> We define other operations (addition and multiplication, for example) by
>> starting with the cardinals, then extending to the integers, the
>> rationals, the reals, and then the complex numbers.  At each stage, we
>> want the new definition to be consistent with the old.
>> [...]
>>> This and the ZF result are arguments for making 0^0 equal to one. They
>>> are not in any sense "proofs" that it must be one, given that Power
>>> lives in the setting of functions of complex variables.

>> The ZF result is indeed a proof in the context of the cardinal numbers.
>> The empty product result applies to any monoid.  The complex numbers are
>> a monoid.  The symbol "0" in Mathematica represents the complex number 0,
>> and as you can see, Mathematica agrees that the empty product yields the
>> complex number 1.

> As best I can tell, this is fine if you restrict exponents to natural
> numbers. If you are saying that this exponentiation extends to arbitrary
> complex-valued exponents, then maybe so but it's not obvious to me.

There have been many discussions of this point in sci.math over the
years.  The emerging consensus among mathematicians (not necessarily my
own opinion) seems to be that it makes sense to observe that very distinction,
namely, that 0^0 = 1 when the exponent is an integer, but that the
expression should be left undefined when the exponent is real or complex.

There is also considerable precedent in various programming languages for
doing this.  In fact, the value of 0^0 (or 0**0 or pow(0,0), or whatever
the notation may be) is often defined to be 1 of the appropriate base type,
provided the exponent is an integer, and undefined otherwise.

>>>> Having x^y be discontinuous at (0,0) does not "cause problems" any more
>>>> than having the Sign function be discontinuous at 0 causes problems.

>>> That's a matter of opinion. Clearly we do not at this time agree with
>>> you on this.

>> But no one has presented an example of an actual "problem" that is caused
>> by the definition.  Discontinuous functions exist.  That's the basic
>> reason that we need to study limits in the first place.

> One place I think it would it would cause problems is in Mathematica Limit
> and Series code. Things that do not evaluate to Indeterminate are often
> taken as "correct" limiting values. This is one reason that having values
> at discontinuities e.g. on branch cuts requires careful treatment, special
> code, is a source of bugs, etc. While I have not tried the experiment, I
> would venture to guess that making 0^0 evaluate to 1 would bring
> substantial new troubles to that part of the code base. As I alluded
> above, this sort of change incurs a development cost that can be rather
> steep, and for no gain I can discern.

Mathematically, the definition of a limit makes no mention of whether the
expression is defined at the point in question.  It's unfortunate that
Mathematica code conflates two concepts that have nothing to do with each

There are several benefits that I can see for defining 0^0 = 1.

1) The binomial theorem says

	(a+b)^n = Sum[Binomial[n,k] a^k b^(n-k),{k,0,n}]

   but in order for this to work for the case a=0 or b=0, we need 0^0 = 1.

2) The derivative of x^n is D[x^n,x] = n x^(n-1), but in order for
   this to work for the case n=1, we need 0^0 = 1.

3) The MacLaurin series for f[x] is given by

	Sum[D[f,{x,k}][0]/k! x^k,{k,0,Infinity}]

   but for this to work for x = 0 we need 0^0 = 1.  The Exp[0]
   argument that I mentioned previously is a special case.

In each of these cases, the exponent is the integer 0.  The base may be
real or complex.

>>>> [...]
>> We don't "assign" a value to 0^0.  We simply look at the definition and
>> notice what it says for the case of 0^0.  The definition makes no
>> statement at all about limits, and therefore thinking that the definition
>> has implications regarding limits is a misconception.

> Again, this seems fine in a setting of power sets of natural numbers. It
> does not play nice with a^b = Exp[Log[a]*b]. I think that gets me back to
> where I began in this thread.

Again, it depends on the type of the exponent.

> Daniel Lichtblau
> Wolfram Research

Dave Seaman
Third Circuit ignores precedent in Mumia Abu-Jamal ruling.

  • Prev by Date: Re: Re: Mathematica and LyX - Graphics and equations
  • Next by Date: moment generating function for gaussian and lognormal distribution
  • Previous by thread: Re: 0^0 = 1?
  • Next by thread: Re: Re: 0^0 = 1?