# Simplify is excluding indeterminate expression from output

Consider the following code and its output:

Simplify[Sin[n Pi]/n, Assumptions -> Element[n, Integers]

(* 0 *)


However when I try

Simplify[Sin[n Pi]/n, Assumptions -> n == 0]


Simplify::infd: Expression Sin[n Pi]/n simplified to Indeterminate.

Indeterminate


I am wondering why didn't Simplify included the separate case n=0 in the first output, and how to avoid this type of errors.

• In a pre-calclulus book I once used, an algebraic identity was an equation which is true for all values of the variables for which both sides are defined. That's less restrictive than saying they are identical as functions. Simplify seems to take the less restrictive approach. Apr 30, 2017 at 16:44
• Related: (65624), (66166), (89990) Apr 30, 2017 at 16:45

The Possible Issues section of the documentation for Simplify states: "The Wolfram Language evaluates zero times a symbolic expression to zero ... Because of this, results of simplification of expressions with singularities are uncertain."

For the case, n==0 you need to take the Limit

Limit[Sin[n Pi]/n, n -> 0]

(*  π  *)


A Plot shows that this Limit is consistent

Plot[Sin[n Pi]/n, {n, -3, 3}]


Alternatively,

Sin[n Pi]/n == Pi Sin[n Pi]/(n Pi) == Pi Sinc[n Pi] // FullSimplify

(*  True  *)

FullSimplify[Pi Sinc[n Pi], Element[n, Integers]]

(*  π KroneckerDelta[n]  *)

% // PiecewiseExpand


Reduce is usually careful, compared with Simplify or Solve. (Note that the desired result, here represented by ConditionalExpression, is not really "simpler" in the usual LeafCount/ SimplifySimplifyCount sense used by Simplify.) One oddity is the mathematically redundant n == 0 in the condition Element[n, Integers] || n == 0 makes a difference: The case n == 0 is not overlooked as it is with just Element[n, Integers]. This is true for Simplify[Sin[n Pi]/n, Element[n, Integers] || n == 0], too, although it returns Sin[n Pi]/n.

Here is the result of Reduce, set up to work like Simplify:

x /. First@Solve[Reduce[(Element[n, Integers] || n == 0) && x == Sin[n Pi]/n], x]
(*  ConditionalExpression[0, (n ∈ Integers && n >= 1) || (n ∈ Integers && n <= -1)]  *)


Note it returns Undefined, as it should as a function of an integer variable, if 0 is subsituted for n:

% /. n -> 0
(*  Undefined  *)
`