Opened 4 years ago

Last modified 7 weeks ago

## #22027 new defect

# Simplifying 0**x gives 0, with no assumptions on x

Reported by: | pelegm | Owned by: | |
---|---|---|---|

Priority: | major | Milestone: | sage-7.5 |

Component: | symbolics | Keywords: | simplify |

Cc: | Merged in: | ||

Authors: | Reviewers: | ||

Report Upstream: | N/A | Work issues: | |

Branch: | Commit: | ||

Dependencies: | Stopgaps: |

### Description

Check this:

sage: simplify(0**x) 0

but

sage: 0**0 1

### Change History (3)

### comment:1 Changed 4 years ago by

### comment:2 Changed 3 years ago by

Are we ok with sage returning 1 for 0^{0? This is the case in Python, but in Maxima is it undefined.
}

Is maxima under active development? Should we report that issue there?

Note that sympy handles this properly:

In [6]: sympy.simplify(0**x) Out[6]: 0**x

### comment:3 Changed 7 weeks ago by

Singular says `0^n = 0`

(where `n`

must be an integer):

CanonicalForm power ( const CanonicalForm & f, int n ) { ASSERT( n >= 0, "illegal exponent" ); if ( f.isZero() ) return CanonicalForm(0L); ...

I would say this is clearly wrong: `x^0`

needs to be `1`

for all `x`

if the exponent is an integer variable.

**Note:**See TracTickets for help on using tickets.

That is a Maxima bug.