量词
在一个如
的语句中,Mathematica 把变量
当作具有确定但是未指定的值来处理. 然而,有时候,提供
的可能值集合的语句是有用的. 可以使用量词 来实现这个功能.
| ForAll[x,expr] | expr 对 x 所有值成立 |
| ForAll[{x1,x2,...},expr] | expr对所有 xi 的所有值成立 |
| ForAll[{x1,x2,...},cond,expr] | expr对所有满足cond的 xi 成立 |
| Exists[x,expr] | 存在 x 的值使得 expr 成立 |
| Exists[{x1,x2,...},expr] | 存在 的值使得 expr 成立 |
| Exists[{x1,...},cond,expr] | 存在 的值满足 cond 并使得 expr 成立 |
量词的结构.
用户可以在 Mathematica 中像使用方程、不等式或逻辑语句一样经常地使用量词. 在绝大多数情况下,量词将不会因为计算立即被改变. 但是,它们可以通过函数如 FullSimplify 和 Reduce 简化或消去.
这里声明存在一个

使得不等式成立. 这里的输出就是输入的一个格式化版本.
| Out[1]= |  |
| Out[2]= |  |
这里给出
False,因为当

等于零时,不等式不成立.
| Out[3]= |  |
Mathematica 支持在谓词逻辑和纯数学中使用的量词的标准记号版本. 可以输入
作为 \[ForAll] 或者
,并且可以输入
作为 \[Exists] 或者
. 然而,为了使得记号更为精确,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 什么为真的明确语句转化为关于条件成立的明确语句.
消去量词.
这里显示存在一个

使得方程为真.
| Out[4]= |  |
这里显示只有当

遵循某个条件,方程才能成立.
| Out[5]= |  |
Resolve 可以总是在复数范围内的多项式等式和不等式集合,以及实数范围内的多项式等式和不等式集合中消去量词. 它也可以从布尔表达式中消去量词.
| Out[6]= |  |
这里显示有一种办法可以对

和

赋予真值,从而使得表达式为真.
| Out[7]= |  |
也可以以 Reduce 的方式使用量词. 如果用户给 Reduce 提供了一个等式或者不等式的集合,那么它将会试图产生完整解集的具体表示. 但是有时候,用户可能想要表示一个更为全局的问题,比如,解集是否包含 x 的所有值,或者它是否不包含任何值. 量词给我们提供了指明这些问题的方便的途径.
| Out[8]= |  |
| Out[9]= |  |
对于大量数学问题都可能可以使用量词表示成数学公式.
| Out[10]= |  |
| Out[11]= |  |
这里定义

为一般的首一四次多项式.
| Out[13]= |  |
虽然在整数上消去量词在计算上是不可能的问题,然而 Mathematica 在特殊情况下可以实现这个功能.
这里显示

不可能是一个有理数.
| Out[14]= |  |
但

是一个有理数.
| Out[15]= |  |