**Zero to the power of zero**, denoted by **0 ^{0}**, 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, combinatorics, or set theory, the generally agreed upon value is 0

There are many widely used formulas having terms involving natural-number exponents that require 0^{0} to be evaluated to 1. For example, regarding *b*^{0} as an empty product assigns it the value 1, even when *b* = 0. Alternatively, the combinatorial interpretation of *b*^{0} 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 0^{0} is the number of functions from the empty set to the empty set; there is exactly one such function, the empty function.^{[1]}

Likewise, when working with polynomials, it is often necessary to assign 0^{0} the value 1. A polynomial is an expression of the form where *x* is an indeterminate, and the coefficients are real numbers (or, more generally, elements of some ring). The set of all real polynomials in *x* is denoted by . Polynomials are added termwise, and multiplied by the 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 is the identity element of the polynomial ring, meaning that it is the (unique) element such that the product of with any polynomial is just .^{[2]} Polynomials can be evaluated by specializing the indeterminate *x* to be a real number. More precisely, for any given real number there is a unique unital ring homomorphism such that .^{[3]} This is called the *evaluation homomorphism*. Because it is a unital homomorphism, we have That is, for all specializations of *x* to a real number (including zero).

This perspective is significant for many polynomial identities appearing in combinatorics. For example, the binomial theorem is not valid for *x* = 0 unless 0^{0} = 1.^{[4]} Similarly, rings of power series require to be true for all specializations of *x*. Thus identities like and are only true as functional identities (including at *x* = 0) if 0^{0} = 1.

In differential calculus, the power rule is not valid for *n* = 1 at *x* = 0 unless 0^{0} = 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 *x*^{y}, though continuous on the set {(*x*, *y*) : *x* > 0}, cannot be extended to a continuous function on , no matter how one chooses to define 0^{0}.^{[6]} However, under certain conditions, such as when *f* and *g* are both analytic functions 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]}

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

The debate over the definition of has been going on at least since the early 19th century. At that time, most mathematicians agreed that , until in 1821 Cauchy^{[13]} listed along with expressions like in a table of indeterminate forms. In the 1830s Guglielmo Libri Carucci dalla Sommaja^{[14]}^{[15]} published an unconvincing argument for , and Möbius^{[16]} sided with him, erroneously claiming that whenever . A commentator who signed his name simply as "S" provided the counterexample of , and this quieted the debate for some time. More historical details can be found in Knuth (1992).^{[17]}

More recent authors interpret the situation above in different ways:

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

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 0^{0}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 0^{0}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 0^{0}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 is defined by*e*^{power×log(base)}.

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]}

The C and C++ standards do not specify the result of 0^{0} (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]} and the .NET Framework method `System.Math.Pow`

^{[26]} also treat 0^{0} as 1. Some languages document that their exponentiation operation corresponds to the `pow`

function from the C mathematical library; this is the case of Lua^{[27]} and Perl's `**`

operator^{[28]} (where it is explicitly mentioned that the result of `0**0`

is platform-dependent).

- SageMath simplifies
*b*^{0}to 1, even if no constraints are placed on*b*. It takes 0^{0}to be 1, but does not simplify 0^{x}for other*x*.^{[citation needed]} - Maple distinguishes between
*integers*0, 1, ... and the corresponding*floats*0.0, 1.0, ... (usually denoted 0., 1., ...). If*x*does not evaluate to a number, then*x*^{0}and*x*^{0.0}are respectively evaluated to 1 (*integer*) and 1.0 (*float*); on the other hand, 0^{x}is evaluated to the integer 0, while 0.0^{x}is evaluated as 0.^{x}. If both the base and the exponent are zero (or are evaluated to zero), the result is*Float(undefined)*if the exponent is the*float*0.0; with an integer as exponent, the evaluation of 0^{0}results in the*integer*1, while that of 0.^{0}results in the*float*1.0.^{[citation needed]} - Macsyma also simplifies
*b*^{0}to 1 even if no constraints are placed on*b*, but issues an error for 0^{0}. For*x*> 0, it simplifies 0^{x}to 0.^{[citation needed]} - Mathematica distinguishes between integers as exact, and floating point numbers as approximate. It simplifies
*b*^{0}to 1, even if no constraints are placed on*b*, does not simplify 0^{x}, and takes 0^{0}to be "Indeterminate".^{[29]} - PARI/GP also distinguishes between integer and floating-point types: When the exponent 0 is of integer type, the expression, such as 0^0 or 0.^0, is simplified to 1.
^{[30]}When the exponent is not of integer type, PARI/GP treats*x*^*n*as the transcendental function , so that 0^0. yields a domain error.^{[31]} - APL,
^{[32]}Matlab, Python, Magma, GAP, singular, and GNU Octave evaluate 0^{0}as 1.^{[citation needed]} - Microsoft Excel treats =0^0 as #NUM!.
^{[33]} - R evaluates as .
^{[34]}

**^**N. Bourbaki, Elements of Mathematics, Theory of Sets, Springer-Verlag, 2004, III.§3.5.**^**Nicolas Bourbaki (1970).*Algèbre*. Springer., §III.2 No. 9: "L'unique monôme de degré 0 est l'élément unité de ; on l'identifie souvent à l'élément unité 1 de*A*".**^**Nicolas Bourbaki (1970).*Algèbre*. Springer., §IV.1 No. 3.**^**"Some textbooks leave the quantity 0^{0}undefined, because the functions*x*^{0}and 0^{x}have different limiting values when*x*decreases to 0. But this is a mistake. We must define*x*^{0}= 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 0^{x}is quite unimportant".Ronald Graham, Donald Knuth, and Oren Patashnik (1989-01-05). "Binomial coefficients".*Concrete Mathematics*(1st ed.). Addison Wesley Longman Publishing Co. p. 162. ISBN 0-201-14236-8.CS1 maint: multiple names: authors list (link)**^**Malik, S. C.; Savita Arora (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 × ∞, ∞ − ∞, 0^{0}, 1^{∞}and ∞^{0}.**^**L. J. Paige (March 1954). "A note on indeterminate forms".*American Mathematical Monthly*.**61**(3): 189–190. doi:10.2307/2307224. JSTOR 2307224.**^**sci.math FAQ: What is 0^0?**^**Rotando, Louis M.; Korn, Henry (1977). "The Indeterminate Form 0^{0}".*Mathematics Magazine*. Mathematical Association of America.**50**(1): 41–42. doi:10.2307/2689754. JSTOR 2689754.**^**Lipkin, Leonard J. (2003). "On the Indeterminate Form 0^{0}".*The College Mathematics Journal*. Mathematical Association of America.**34**(1): 55–56. doi:10.2307/3595845. JSTOR 3595845.**^**"Since log(0) does not exist, 0^{z}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**^**"For*z*= 0,*w*≠ 0, we define 0^{w}= 0, while 0^{0}is not defined." Mario Gonzalez,*Classical Complex Analysis*, Chapman & Hall, 1991, p. 56. ISBN 0-8247-8415-4**^**"... Let's start at*x*= 0. Here*x*^{x}is undefined." Mark D. Meyerson, The*x*^{x}Spindle,*Mathematics Magazine***69**, no. 3 (June 1996), 198-206. doi:10.1080/0025570X.1996.11996428**^**Augustin-Louis Cauchy,*Cours d'Analyse de l'École Royale Polytechnique*(1821). In his*Oeuvres Complètes*, series 2, volume 3.**^**Guillaume Libri, Note sur les valeurs de la fonction 0^{0x},*Journal für die reine und angewandte Mathematik***6**(1830), 67–72.**^**Guillaume Libri, Mémoire sur les fonctions discontinues,*Journal für die reine und angewandte Mathematik***10**(1833), 303–316.**^**A. F. Möbius (1834). "Beweis der Gleichung 0^{0}= 1, nach J. F. Pfaff" [Proof of the equation 0^{0}= 1, according to J. F. Pfaff].*Journal für die reine und angewandte Mathematik*.**12**: 134–136.- ^
^{a}^{b}Donald E. Knuth, Two notes on notation,*Amer. Math. Monthly***99**no. 5 (May 1992), 403–422 (arXiv:math/9205211). **^**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.**^**Donald C. Benson,*The Moment of Proof : Mathematical Epiphanies.*New York Oxford University Press (UK), 1999. ISBN 978-0-19-511721-9**^**"What is 0^0?".*www.maa.org*. Retrieved 2019-07-26.**^**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. LCCN 2009939668. ISBN 978-0-8176-4705-6 (online), ISBN 0-8176-4704-X (print)**^**"More transcendental questions".*grouper.ieee.org*. 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.)**^**"Re: A vague specification".*grouper.ieee.org*. 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.)**^**John Benito (April 2003). "Rationale for International Standard—Programming Languages—C" (PDF). Revision 5.10: 182. Cite journal requires`|journal=`

(help)**^**"Math (Java Platform SE 8) pow". Oracle.**^**".NET Framework Class Library Math.Pow Method". Microsoft.**^**"Lua 5.3 Reference Manual". Retrieved 2019-05-27.**^**"perlop – Exponentiation". Retrieved 2019-05-27.**^**"Wolfram Language & System Documentation: Power". Wolfram. Retrieved August 2, 2018.**^**"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.**^**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*).**^**"Language Reference Guide". Dyalog Ltd.If

*Y*is zero,*R*is defined to be 1.**^**Microsoft Docs, "[MS-OE376]: Part 4 Section 3.17.7.252, POWER"**^**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.

- sci.math FAQ: What is 0
^{0}? - What does 0^0 (zero to the zeroth power) equal? on AskAMathematician.com