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