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