Logic 如何验证具有符号和符号的逻辑函数的解决方案(用于逻辑包)
例如,如果我们有一个逻辑函数F=(x1或x2)和(不是x2),那么我们可以通过以下方式验证方程F=true的解[x1=true,x2=false]:Logic 如何验证具有符号和符号的逻辑函数的解决方案(用于逻辑包),logic,maple,Logic,Maple,例如,如果我们有一个逻辑函数F=(x1或x2)和(不是x2),那么我们可以通过以下方式验证方程F=true的解[x1=true,x2=false]: [> F:=(x1 or x2) and (not x2): subs({x1=true,x2=false},F); true MapleLogic软件包有一个很好的函数SUPPITE,它可以找到解决方案,但函数F(现在命名为G)必须使用符号&(before a
[> F:=(x1 or x2) and (not x2):
subs({x1=true,x2=false},F);
true
MapleLogic软件包有一个很好的函数SUPPITE,它可以找到解决方案,但函数F(现在命名为G)必须使用符号&(before and,or,not)编写:
但我不知道如何验证解决方案的简单方法(我的意思不是在这个特定的情况下,而是在一般情况下,函数可能有数百个变量)。我的尝试是使用替换,然后使用evalb,但没有成功:
[> G1:=subs(A,G);
evalb(G1);
G1:= (true &or false) &and ¬(false)
(true &or false) &and ¬(false)
但对于函数F,替代有效(即使没有evalb):
此外,我也找不到一种简单的方法来删除表达式中的符号&符号(以便从函数G构造函数F)
给定以逻辑
包使用的形式分配给G
的逻辑表达式(即名称前缀为&
的运算符),则分配给cand
的候选解决方案可按以下方式进行测试:
BG := Logic:-Export(G, form=boolean);
BG := (x1 or x2) and not x2
eval(BG, cand);
true
把这两个步骤结合起来,
eval(Logic:-Export(G, form=boolean), cand);
true
完美的谢谢
G := (x1 &or x2) &and (¬ x2):
cand := {x1=true, x2=false}:
BG := Logic:-Export(G, form=boolean);
BG := (x1 or x2) and not x2
eval(BG, cand);
true
eval(Logic:-Export(G, form=boolean), cand);
true