Zero to the power of zero

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search

Zero to the power of zero, denoted by 00, is a mathematical expression with no agreed-upon value. The most common possibilities are 1 or leaving the expression undefined, with justifications existing for each, depending on context. In algebra and combinatorics, the generally agreed upon value is 00 = 1, whereas in mathematical analysis, the expression is sometimes left undefined. Computer programming languages and software also have differing ways of handling this expression.

Discrete exponents[edit]

There are many widely used formulas having terms involving natural-number exponents that require 00 to be evaluated to 1. For example, regarding b0 as an empty product assigns it the value 1, even when b = 0. Alternatively, the combinatorial interpretation of b0 is the number of empty tuples of elements from a set with b elements; there is exactly one empty tuple, even if b = 0. Equivalently, the set-theoretic interpretation of 00 is the number of functions from the empty set to the empty set; there is exactly one such function, the empty function.[1]

Polynomials and power series[edit]

Likewise, when working with polynomials, it is convenient to define 00 as having the value 1. A polynomial is an expression of the form a0x0 + ⋅⋅⋅ + anxn, where x is an indeterminate, and the coefficients an are real numbers (or, more generally, elements of some ring). The set of all real polynomials in x is denoted by R[x]. Polynomials are added termwise, and multiplied by applying the usual rules for exponents in the indeterminate x (see Cauchy product). With these algebraic rules for manipulation, polynomials form a polynomial ring. The polynomial x0 is the identity element of the polynomial ring, meaning that it is the (unique) element such that the product of x0 with any polynomial p(x) is just p(x).[2] Polynomials can be evaluated by specializing the indeterminate x to a real number. More precisely, for any given real number a, there is a unique unital R-algebra homomorphism eva : R[x] → R such that eva(x) = a. This is called the evaluation homomorphism. Because eva is unital, eva(x0) = 1. That is, a0 = 1 for each real number a, including 0. The same argument applies with R replaced by any ring.[3]

Defining 00 = 1 is necessary for many polynomial identities. For example, the binomial theorem (1 + x)n = ∑n
) xk
is not valid for x = 0 unless 00 = 1.[4] Similarly, rings of power series require x0 = 1 to be true for all specializations of x. For example, identities like 1/1−x = ∑
and ex = ∑
hold for x = 0 only if 00 = 1.

In calculus, the power rule d/dxxn = nxn−1 is valid for n = 1 at x = 0 only if 00 = 1.

Continuous exponents[edit]

Plot of z = xy. The red curves (with z constant) yield different limits as (x, y) approaches (0, 0). The green curves (of finite constant slope, y = ax) all yield a limit of 1.

Limits involving algebraic operations can often be evaluated by replacing subexpressions by their limits; if the resulting expression does not determine the original limit, the expression is known as an indeterminate form.[5] In fact, when f(t) and g(t) are real-valued functions both approaching 0 (as t approaches a real number or ±∞), with f(t) > 0, the function f(t)g(t) need not approach 1; depending on f and g, the limit of f(t)g(t) can be any non-negative real number or +∞, or it can diverge. For example, the functions below are of the form f(t)g(t) with f(t), g(t) → 0 as t → 0+ (a one-sided limit), but the limits are different:

Thus, the two-variable function xy, though continuous on the set {(x, y) : x > 0}, cannot be extended to a continuous function on {(x, y) : x > 0} ∪ {(0, 0)}, no matter how one chooses to define 00.[6] However, under certain conditions, such as when f and g are both analytic functions at zero and f is positive on the open interval (0, b) for some positive b, the limit approaching from the right is always 1.[7][8][9]

Complex exponents[edit]

In the complex domain, the function zw may be defined for nonzero z by choosing a branch of log z and defining zw as ew log z. This does not define 0w since there is no branch of log z defined at z = 0, let alone in a neighborhood of 0.[10][11][12]

History of differing points of view[edit]

The debate over the definition of 00 has been going on at least since the early 19th century. At that time, most mathematicians agreed that 00 = 1, until in 1821 Cauchy[13] listed 00 along with expressions like 0/0 in a table of indeterminate forms. In the 1830s Guglielmo Libri Carucci dalla Sommaja[14][15] published an unconvincing argument for 00 = 1, and Möbius[16] sided with him, erroneously claiming that limt→0+ f(t)g(t) = 1 whenever limt→0+ f(t) = limt→0+ g(t) = 0. A commentator who signed his name simply as "S" provided the counterexample of (e−1/t)t, and this quieted the debate for some time.[17]

More recent authors interpret the situation above in different ways:

  • Some argue that the best value for 00 depends on context, and hence that defining it once and for all is problematic.[18] According to Benson (1999), "The choice whether to define 00 is based on convenience, not on correctness. If we refrain from defining 00, then certain assertions become unnecessarily awkward. [...] The consensus is to use the definition 00 = 1, although there are textbooks that refrain from defining 00."[19]
  • Others argue that 00 should be defined as 1. Knuth (1992) contends strongly that 00 "has to be 1", drawing a distinction between the value 00, which should equal 1 as advocated by Libri, and the limiting form 00 (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."[17] Vaughn gives several other examples of theorems whose (simplest) statements require 00 = 1 as a convention.[20]

Treatment on computers[edit]

IEEE floating-point standard[edit]

The IEEE 754-2008 floating-point standard is used in the design of most floating-point libraries. It recommends a number of operations for computing a power:[21]

  • pow treats 00 as 1. If the power is an exact integer the result is the same as for pown, otherwise the result is as for powr (except for some exceptional cases).
  • pown treats 00 as 1. The power must be an exact integer. The value is defined for negative bases; e.g., pown(-3,5) is −243.
  • powr treats 00 as NaN (Not-a-Number – undefined). The value is also NaN for cases like powr(-3,2) where the base is less than zero. The value of powr(x,y) is defined by ey ln(x).

The pow variant is inspired by the pow function from C99, mainly for compatibility.[22] It is useful mostly for languages with a single power function. The pown and powr variants have been introduced due to conflicting usage of the power functions and the different points of view (as stated above).[23]

Programming languages[edit]

The C and C++ standards do not specify the result of 00 (a domain error may occur), but as of C99, if the normative annex F is supported, the result is required to be 1 because there are significant applications for which this value is more useful than NaN[24] (for instance, with discrete exponents). The Java standard,[25] the .NET Framework method System.Math.Pow,[26] and Python[27][28] also treat 00 as 1. Some languages document that their exponentiation operation corresponds to the pow function from the C mathematical library; this is the case with Lua[29] and Perl's ** operator[30] (where it is explicitly mentioned that the result of 0**0 is platform-dependent).

Mathematical and scientific software[edit]

APL[citation needed], R,[31] Stata[citation needed], SageMath[citation needed], Matlab[citation needed], Magma[citation needed], GAP[citation needed], Singular[citation needed], PARI/GP,[32] and GNU Octave[citation needed] evaluate x0 to 1. Mathematica[33] and Macsyma[citation needed] simplify x0 to 1 even if no constraints are placed on x; however, if 00 is entered directly, it is treated as an error or indeterminate. SageMath[citation needed] does not simplify 0x. Maple[citation needed], Mathematica[33] and PARI/GP[32][34] further distinguish between integer and floating-point values: If the exponent is a zero of integer type, they return a 1 of the type of the base; exponentiation with a floating-point exponent of value zero is treated as undefined, indeterminate or error.


  1. ^ N. Bourbaki, Elements of Mathematics, Theory of Sets, Springer-Verlag, 2004, III.§3.5.
  2. ^ Nicolas Bourbaki (1970). Algèbre. Springer., §III.2 No. 9: "L'unique monôme de degré 0 est l'élément unité de A[(Xi)iI]; on l'identifie souvent à l'élément unité 1 de A".
  3. ^ Nicolas Bourbaki (1970). Algèbre. Springer., §IV.1 No. 3.
  4. ^ "Some textbooks leave the quantity 00 undefined, because the functions x0 and 0x have different limiting values when x decreases to 0. But this is a mistake. We must define x0 = 1, for all x, if the binomial theorem is to be valid when x = 0, y = 0, and/or x = −y. The binomial theorem is too important to be arbitrarily restricted! By contrast, the function 0x is quite unimportant". Ronald Graham; Donald Knuth; Oren Patashnik (1989-01-05). "Binomial coefficients". Concrete Mathematics (1st ed.). Addison Wesley Longman Publishing Co. p. 162. ISBN 0-201-14236-8.
  5. ^ Malik, S. C.; Arora, Savita (1992). Mathematical Analysis. New York: Wiley. p. 223. ISBN 978-81-224-0323-7. In general the limit of φ(x)/ψ(x) when x = a in case the limits of both the functions exist is equal to the limit of the numerator divided by the denominator. But what happens when both limits are zero? The division (0/0) then becomes meaningless. A case like this is known as an indeterminate form. Other such forms are ∞/∞, 0 × ∞, ∞ − ∞, 00, 1 and 0.
  6. ^ L. J. Paige (March 1954). "A note on indeterminate forms". American Mathematical Monthly. 61 (3): 189–190. doi:10.2307/2307224. JSTOR 2307224.
  7. ^ "sci.math FAQ: What is 0^0?".
  8. ^ Rotando, Louis M.; Korn, Henry (1977). "The Indeterminate Form 00". Mathematics Magazine. Mathematical Association of America. 50 (1): 41–42. doi:10.2307/2689754. JSTOR 2689754.
  9. ^ Lipkin, Leonard J. (2003). "On the Indeterminate Form 00". The College Mathematics Journal. Mathematical Association of America. 34 (1): 55–56. doi:10.2307/3595845. JSTOR 3595845.
  10. ^ "Since log(0) does not exist, 0z is undefined. For Re(z) > 0, we define it arbitrarily as 0." George F. Carrier, Max Krook and Carl E. Pearson, Functions of a Complex Variable: Theory and Technique, 2005, p. 15 ISBN 0-89871-595-4
  11. ^ "For z = 0, w ≠ 0, we define 0w = 0, while 00 is not defined." Mario Gonzalez, Classical Complex Analysis, Chapman & Hall, 1991, p. 56. ISBN 0-8247-8415-4
  12. ^ "... Let's start at x = 0. Here xx is undefined." Mark D. Meyerson, The xx Spindle, Mathematics Magazine 69, no. 3 (June 1996), 198-206. doi:10.1080/0025570X.1996.11996428
  13. ^ Augustin-Louis Cauchy, Cours d'Analyse de l'École Royale Polytechnique (1821). In his Oeuvres Complètes, series 2, volume 3.
  14. ^ Libri, Guillaume (1830). "Note sur les valeurs de la fonction 00x". Journal für die reine und angewandte Mathematik. 1830 (6): 67–72. doi:10.1515/crll.1830.6.67.
  15. ^ Libri, Guillaume (1833). "Mémoire sur les fonctions discontinues". Journal für die reine und angewandte Mathematik. 1833 (10): 303–316. doi:10.1515/crll.1833.10.303.
  16. ^ A. F. Möbius (1834). "Beweis der Gleichung 00 = 1, nach J. F. Pfaff" [Proof of the equation 00 = 1, according to J. F. Pfaff]. Journal für die reine und angewandte Mathematik. 1834 (12): 134–136. doi:10.1515/crll.1834.12.134.
  17. ^ a b Knuth, Donald E. (1992). "Two Notes on Notation". The American Mathematical Monthly. 99 (5): 403–422. arXiv:math/9205211. doi:10.1080/00029890.1992.11995869.
  18. ^ Examples include Edwards and Penny (1994). Calculus, 4th ed, Prentice-Hall, p. 466, and Keedy, Bittinger, and Smith (1982). Algebra Two. Addison-Wesley, p. 32.
  19. ^ Donald C. Benson, The Moment of Proof : Mathematical Epiphanies. New York Oxford University Press (UK), 1999. ISBN 978-0-19-511721-9
  20. ^ "What is 0^0?". Retrieved 2019-07-26.
  21. ^ Muller, Jean-Michel; Brisebarre, Nicolas; de Dinechin, Florent; Jeannerod, Claude-Pierre; Lefèvre, Vincent; Melquiond, Guillaume; Revol, Nathalie; Stehlé, Damien; Torres, Serge (2010). Handbook of Floating-Point Arithmetic (1 ed.). Birkhäuser. p. 216. doi:10.1007/978-0-8176-4705-6. ISBN 978-0-8176-4704-9. LCCN 2009939668. ISBN 978-0-8176-4705-6 (online), ISBN 0-8176-4704-X (print)
  22. ^ "More transcendental questions". Archived from the original on 2017-11-14. Retrieved 2019-05-27. (Beginning of the discussion about the power functions for the revision of the IEEE 754 standard, May 2007.)
  23. ^ "Re: A vague specification". Archived from the original on 2017-11-14. Retrieved 2019-05-27. (Suggestion of variants in the discussion about the power functions for the revision of the IEEE 754 standard, May 2007.)
  24. ^ Rationale for International Standard—Programming Languages—C (PDF) (Report). Revision 5.10. April 2003. p. 182.
  25. ^ "Math (Java Platform SE 8) pow". Oracle.
  26. ^ ".NET Framework Class Library Math.Pow Method". Microsoft.
  27. ^ "Built-in Types — Python 3.8.1 documentation". Retrieved 2020-01-25. Python defines pow(0, 0) and 0 ** 0 to be 1, as is common for programming languages.
  28. ^ "math — Mathematical functions — Python 3.8.1 documentation". Retrieved 2020-01-25. Exceptional cases follow Annex 'F' of the C99 standard as far as possible. In particular, pow(1.0, x) and pow(x, 0.0) always return 1.0, even when x is a zero or a NaN.
  29. ^ "Lua 5.3 Reference Manual". Retrieved 2019-05-27.
  30. ^ "perlop – Exponentiation". Retrieved 2019-05-27.
  31. ^ The R Core Team (2019-07-05). "R: A Language and Environment for Statistical Computing – Reference Index" (PDF). Version 3.6.1. p. 23. Retrieved November 22, 2019. 1 ^ y and y ^ 0 are 1, always.
  32. ^ a b "pari.git / commitdiff – 10- x ^ t_FRAC: return an exact result if possible; e.g. 4^(1/2) is now 2". Retrieved September 10, 2018.
  33. ^ a b "Wolfram Language & System Documentation: Power". Wolfram. Retrieved August 2, 2018.
  34. ^ The PARI Group (2018). "Users' Guide to PARI/GP (version 2.11.0)" (PDF). pp. 10, 122. Retrieved September 4, 2018. There is also the exponentiation operator ^, when the exponent is of type integer; otherwise, it is considered as a transcendental function. [...] If the exponent n is an integer, then exact operations are performed using binary (left-shift) powering techniques. [...] If the exponent n is not an integer, powering is treated as the transcendental function exp(n log x).

External links[edit]