我的代码类似于:
if conditionA(x, y, z) then doA()
else if conditionB(x, y, z) then doB()
...
else if conditionZ(x, y, z) then doZ()
else throw ShouldNeverHappenException
我想验证两件事(使用静态分析):
- 如果所有条件
conditionA, conditionB, ..., conditionZ
都是互斥的(即不可能同时有两个或多个条件为真)。 - 涵盖了所有可能的情况,即永远不会调用“else throw”语句。
你能给我推荐一个工具和/或我可以(轻松)做到这一点的方法吗?
我希望获得比“使用 Prolog”或“使用 Mathematica”更详细的信息...... ;-)
更新:
假设conditionA, conditionB, ..., conditionZ
是(纯)函数,并且 x、y、z 具有“原始”类型。