具有范围谓词的析取范式

时间:2009-12-16 19:21:20

标签: forms expression predicate

我需要一个库/算法,它可以将包含范围谓词的任意逻辑表达式转换为简化的不相交的正规形式。

示例:  (x> 40)& ((x> 50)|(y> 10)) - > (x> 50)| (x> 40)& (y> 10)

基本上,我想简单地表达这样一个表达式,以便尽快评估。

任何人都可以帮助我?

2 个答案:

答案 0 :(得分:1)

Wolfram Alpha很好地处理你的表达:

see here

...意味着Mathematica适合这样做,开箱即用。但是,您可能不希望将这个大型程序用于这样一个相对简单的问题。

答案 1 :(得分:0)

ANTLR这样的工具可以帮助您为表达式构建一个解析树。然后,您可以根据运算符的可交换属性“展平”树。我个人并不知道会这样做的算法或库。