Упрощение логического выражения в java

Есть ли какой-либо инструмент или библиотека в java, которая упрощает формулу логического выражения и дает результат.

когда входы такие,

exp = (a || a' ) result = 1

exp = ( a || b ) && ( a' || b )  result = b (after simplification)

Выражения могут быть больше или сложнее, чем указано выше.


person sctn    schedule 24.02.2011    source источник
comment
Под a' вы имеете в виду не а? Это должно быть !a в Java. Кстати, ( a || b ) && ( !a || b ) оценивается как false, а не b. Вы имели в виду ( a && b ) || ( !a && b ) ?   -  person Péter Török    schedule 24.02.2011
comment
Это не связано с программированием — мне кажется, вы ищете приложение, которое может упростить логические выражения.   -  person Andreas Dolk    schedule 24.02.2011
comment
Да, Андреас, я полностью пытаюсь найти библиотеку, когда я даю свое выражение, например, ((a && b) || (c || d' ) && (d' && a)) , тогда библиотека/инструмент будет дайте упрощенную и уменьшенную версию этого выражения. Конечно, если выражение применимо для упрощения.   -  person sctn    schedule 24.02.2011


Ответы (1)


IntelliJ поддерживает "намерения", которые позволяют упростить логические выражения в редакторе. Кроме того, PMD может сообщать вам об ошибках такого рода (см. логические правила)

person Jeff Foster    schedule 24.02.2011
comment
Мне нравится, что IntelliJ может проверять связанные операторы if, такие как if (a == null || b == null) { } else if (a != null && b != null) { } Он предупреждает второе, если условие всегда истинно, и предлагает удалить его для вас. - person Peter Lawrey; 24.02.2011
comment
Спасибо Джеффу Фостеру, но ни один из этих инструментов не оправдывает ожиданий по упрощению логического логического выражения. Они оптимизаторы исходного кода, меня не интересует код, я просто хочу найти инструмент/библиотеку или код, который может упростить логическое логическое выражение. - person sctn; 24.02.2011