Logic 如何验证具有符号和符号的逻辑函数的解决方案(用于逻辑包)

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或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 and,or,not)编写:

但我不知道如何验证解决方案的简单方法(我的意思不是在这个特定的情况下,而是在一般情况下,函数可能有数百个变量)。我的尝试是使用替换,然后使用evalb,但没有成功:

[> G1:=subs(A,G);
   evalb(G1);
                   G1:= (true &or false) &and &not(false)
                      (true &or false) &and &not(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 (&not 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