最大值 - 减少逻辑表达式

时间:2018-06-12 15:21:32

标签: logical-operators symbolic-math maxima

考虑以下maxima的说明序列:

(in1) x=0;
(out) x=0

(in2) y>0;
(out) y>0

(in3) x>0 and y>0;
(out) x>0 and y>0

(in4) x=0 or y>0;
(out) y>0

(in5) x=0 and y>0;
(out) false

前三条指令产生预期输出。 但是,为什么逻辑命题" x = 0"输入(in4)和(in5)被认为等于假?

我们可以看到表达式" x = 0"是孤立的,它没有给出一个特定的值(这里是假的),我不是从概念上和数学上理解这些输出,它不是预期的数学行为。

当我尝试调试时,这是一些奇怪的行为。

(in1) prederror:true$
(in2) debugmode(true)$
(in3) x=0;
(out) x=0
(in4) y>0;
(out) y>0
(in5) x=0 or y>0;
(out) Unable to evaluate predicate y > 0

这是什么意思?

1 个答案:

答案 0 :(得分:0)

这里会发生什么?

x > 0 and y > 0;

自变量[x > 0][y > 0]被求值。 [[x > 0] and [y > 0]]也会被评估。

x = 0 or y > 0;

[x = 0]评估为false[y > 0]评估为自身,[false or [y > 0]]评估为[y > 0]

x = 0 and y > 0;

[x = 0]被评估为false,而[false and [y > 0]]被立即评估 评估为false而不评估第二个参数。

文档的相关部分是