Simplify
Simplify is command, operator in the Mathematica language.
Usually, the call of this routine has form
Simplify[expresson]
or
Simplify[expresson, conditions]
Several conditions can be combined, for example
conditions$=${condition1, condition2, ..}
in the most of cases, Simplify returns expression, equivalent to its argument; and often, it is written in a form, shorter than its argument.
Example of inconditional simplification
Simplify[2 Sin[x] Cos[x]]
returns
Sin[2 x]
Example of conditional simplification
Sometimes, the simplification is valid only for certain range of values of parameters. The simple example is below.
f[x_] = Sqrt[1 + x] Sqrt[1 - x]
g[x_] = Simplify[f[x]]
The last line returns the same expression as
$\sqrt{1+x}\sqrt{1-x}$
Specification of $x$ may allow the simplification:
h[x_] = Simplify[f[x], x > 0]
leads to non-equivalent expression
$\sqrt{1-x^2}$
that coincides with initial expression for positive $x$, and in this sense is correct.
However, the result of the conditional simplification may be not valid for values of parameters out of range, declared at the call of Simplify:
g[-1.+I] gives the same as f[-1.+I], id est,
1.27202 + 0.786151 I
while h[-1.+I] gives
1.27202 - 0.786151 I
(In Mathemaica, capital "I" denotes $\mathrm i=\sqrt{-1}$.
Not perfect
In some cases, the rules, used in the implementation of the Simplify command, are not sufficient to perform the simplification.
For example,
Simplify[Integrate[(BesselJ[0, BesselJZero[0,1] p]/(1-p^2) )^2 p , {p,0,Infinity}]]
gives complicated expression
-(1/2) Sqrt[Pi] MeijerG[{{}, {1/2}}, {{0, 1}, {0}}, BesselJZero[0, 1]^2]
instead of just 1/2 .
References