[Date Index] [Thread Index] [Author Index]
Re: Re: 0^0 = 1?
> 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 = 1. I vastly prefer to keep -Infinity*0, and it's exponential, as undefined (Indeterminate, in Mathematica). >>> 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. > 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. >>> 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. >>> [...] > 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. Daniel Lichtblau Wolfram Research