Mathematica は通常,オブジェクトの処理に必要なだけの最小限の仮定しかしない.これによりその結果も可能な限り一般的になる.しかし,場合によってこれらの結果は,より多くの仮定がなされた場合よりもかなり複雑になってしまうこともある.
Simplifyと
FullSimplifyを適当な仮定の下で方程式や不等式に適用すると広範な定理を確立することもできる.
Simplifyと
FullSimplifyは常に式の最も簡単な形を求めようとする.しかし,場合によっては
Mathematica に特定の前提条件の下で通常の評価過程を進ませたいこともあるだろう.そのような場合には
Refineを使うとよい.
Refine[expr, assum]は
expr 中の変数が前提条件
assum を満たす数式で置き換えられたならば
Mathematica が自動的に行うであろう変形と同じ変形を行う.
仮定において重要なことは,あるオブジェクトが特定の領域の要素であるということを主張することである.
x
dom を用いてそのような仮定を設定することができる.ここで,

文字は
el
または
\[Element]として入力できる.
Simplify,
FullSimplifyおよび
FunctionExpandを仮定の下に使用することで,
Mathematica の広大な数学的事実のコレクションにアクセスできる.
Mathematica は,連続を扱う数学と同様に,離散数学と数論も扱える.
Simplify[expr, assum]あるいは
Refine[expr, assum]のようなものには使いたい前提条件を明示的に与える.しかし,操作全体に1組の前提を指定したい場合もあるだろう.そのような場合は
Assumingを使うとよい.
Simplifyや
Refineのような関数は使うべきデフォルトの前提条件を指定するオプション
Assumptionsを取る.デフォルトでは,このオプションの設定は
Assumptions:>$Assumptionsである.
Assumingは,
Blockにおけるように局所値を
$Assumptionsに割り当てるという方法で作用する.