限定子
x^4+x^2>0のような命題で,
Mathematica は変数
xを特定はされていないが限定的な値を持つものとして扱う.しかし,場合によっては
xが取り得る可能な値の集合についての陳述を行うことができると便利である.そのような場合には「限定子」を使うとよい.
| ForAll[x,expr] | x のすべての値で成り立つ expr |
| ForAll[{x1,x2,...},expr] | すべての xi のすべての値で成り立つ expr |
| ForAll[{x1,x2,...}cond,expr] | condを満たすすべての xi で成り立つ expr |
| Exists[x,expr] | expr が成り立つ値 x が存在する |
| Exists[{x1,x2,...},expr] | expr が成り立つ複数の値 xi が存在する |
| Exists[{x1,...},cond,expr] | cond を満たす expr が成り立つ複数の値 xi が存在する |
量限定子の構造
Mathematica では方程式,不等式,論理結合等と同じように量限定子も扱うことができる.ほとんどの場合,量限定子は評価によってすぐに変化はしない.しかし,
FullSimplifyや
Reduceのような関数を使って量限定子を簡約することができる.
これは,この不等式が成立する値 xが存在することを宣言している.ここでの出力は入力を別の形にフォーマットしたものに過ぎない.
| Out[1]= |  |
|
| Out[2]= |  |
|
xがゼロのときは不等式が成立しないので,この場合は Falseが返される.
| Out[3]= |  |
|
Mathematica は述語論理と純粋数学で使われている量限定子の標準的な表記によるバージョンをサポートしている.

は\
[ForAll]あるいは
fa
として入力できる.また,

は\
[Exists]あるいは
ex
として入力できる.表記を厳密にするために,
Mathematica は限定子の付いた変数を下付き文字にする.変数の条件もまたコンマで区切った下付き文字にする.
xexpr | ForAll[x,expr] |
{x1,x2,...}expr | ForAll[{x1,x2,...},expr] |
x,condexpr | ForAll[x,cond,expr] |
xexpr | Exists[x,expr] |
{x1,x2,...}expr | Exists[{x1,x2,...},expr] |
x,condexpr | Exists[x,cond,expr] |
量限定子の表記法
量限定子を含む命題を,量限定子を除去した等価の命題に変換できる場合がある.量限定子の除去は,すべての
x あるいは特定の
x について真であるという黙示的な宣言を,これが成立する条件に関する明示的な宣言に変換する点で,方程式を解くのに似ている.
| Resolve[expr] | expr から量限定子を除去しようとする |
| Resolve[expr,dom] | 領域 dom 中にあると仮定されるすべての変数の量限定子を除去しようとする |
量限定子の除去
これはこの方程式を真にする xが存在することを示している.
| Out[4]= |  |
|
これは, cが特定の条件に従った場合にのみこの方程式が満たされることを示している.
| Out[5]= |  |
|
Resolveは,複素領域と実数領域の任意の整方程式と不等式から常に量限定子を除去することができる.また論理式からも量限定子が除去できる.
これは実数領域の2次方程式の制約条件が正であることを示している.
| Out[6]= |  |
|
これはこの式が真になるように pと qに真値を割り当てる方法があることを示している.
| Out[7]= |  |
|
Reduceでも量限定子を使うことができる.
Reduceに方程式あるいは不等式の集合を与えると,
Reduceは完全な解の集合の詳細に渡る表現を作成しようとする.しかし,ときには解が
x のすべての値を網羅している,あるいはこの値を全くカバーしていないといった,より大域的な問いに対する答がほしい場合もあるだろう.量限定子は,このような問いを指定する便利な方法を提供している.
| Out[8]= |  |
|
| Out[9]= |  |
|
量限定子を使って多くの数学的な問題を形成することができる.
| Out[10]= |  |
|
| Out[11]= |  |
|
これは qが主係数が1の一般的な4次方程式であると定義する. |
これで,4次方程式のすべての根のペアについての条件が等しいことが分かる.
| Out[13]= |  |
|
整数について量限定子を除去するのは一般的に,計算上不可能な問題であるが,
Mathematica は特別な場合に限ってこれを行うことができる.
これは  が有理数ではあり得ないことを示している.
| Out[14]= |  |
|
 は有理数である.
| Out[15]= |  |
|