BOR算法
缩写
Boolean OperatoR
输入
一个singular布尔表达式
输出
一个约束关系集,使得能检测出所有的 boolean operator错误
算法过程
- 建立语法树并且标号
TNi 表示使得这个子表达式为true 所对应的约束集合。
FNi 表示使得这个子表达式为false所对应的约束集合。
Nl表示节点Ni的左节点,Nr表示节点Ni的右节点
- 如果
Ni 是叶子节点->TNi={t} FNi={f} - 如果
Ni 是AND ->TNi=TNl⊗TNr FNi=FNl×tNr⋃tNl×FNr - 如果
Ni 是OR ->FNi=FNl⊗FNr TNi=TNl×fNr⋃fNl×TNr - 如果
Ni 是NOT ->FNi=TNl TNi=FNl