論理関数と区分関数
ネストした論理関数と区分関数は,ネストした数学関数と同じように展開することができる.展開にはLogicalExpandとPiecewiseExpandを使用する.
論理関数と区分関数の展開
LogicalExpandは論理式をORとANDからなる標準的な選言標準形(disjunctive normal form,略してDNF)にする.
デフォルトにより,
Mathematica はこの式を変更しない.
| Out[1]= |  |
| Out[2]= |  |
LogicalExpandはすべての論理関数に使うことができ,常に論理式を標準的なORとANDの形式にする.必然的に結果が非常に大きくなることもある.
| Out[3]= |  |
ネストした条件の任意の集合は常に,単一のPiecewiseオブジェクトからなる「区分標準形式」に事実上平坦化される.Mathematica ではPiecewiseExpandを使ってこれが行える.
デフォルトにより,
Mathematica はこの式を変更しない.
| Out[4]= |  |
| Out[5]= |  |
MaxやAbsのような関数は,ClipやUnitStepと同じように,暗示的に条件を含んでいる.それらの条件の組合せはPiecewiseExpandを使って単一のPiecewiseオブジェクトに簡約することができる.
| Out[6]= |  |
| Out[7]= |  |
Floor,Mod,FractionalPart等の関数は,原則として無限の場合を含むことができるが,Piecewiseオブジェクトによって表すこともできる.

に境界がなければ,場合数が無限になるかもしれない.
| Out[8]= |  |
Mathematica はデフォルトで,計算のどの段階においても,Floorのような単一の区分関数の展開で明示的に生成する場合数を限定している.この境界は$MaxPiecewiseCasesを再設定することで変更できる.