/** * Returns the corresponding (equivalent) value expression in CNF. Makes * a copy of the original value expression, leaving it unmodified. * * @param vexpr * @return null if the value expression is already in CNF, an equivalent * value expression in CNF otherwise */ static public IValueExpressionNode toCNF(final IValueExpressionNode vexpr) { final IValueExpressionNode copy = (IValueExpressionNode)BOpUtility.deepCopy((BOp) vexpr); return pushDisjuncts(pushNegations(copy)); }
/** * Returns the corresponding (equivalent) value expression in CNF. Makes * a copy of the original value expression, leaving it unmodified. * * @param vexpr * @return null if the value expression is already in CNF, an equivalent * value expression in CNF otherwise */ static public IValueExpressionNode toCNF(final IValueExpressionNode vexpr) { final IValueExpressionNode copy = (IValueExpressionNode)BOpUtility.deepCopy((BOp) vexpr); return pushDisjuncts(pushNegations(copy)); }
pushNegations( pushDisjuncts((IValueExpressionNode) functionNode.get(0))); final IValueExpressionNode right = pushNegations( pushDisjuncts((IValueExpressionNode) functionNode.get(1)));
pushNegations( pushDisjuncts((IValueExpressionNode) functionNode.get(0))); final IValueExpressionNode right = pushNegations( pushDisjuncts((IValueExpressionNode) functionNode.get(1)));
pushNegations( FunctionNode.NOT( (ValueExpressionNode)innerFunctionNode.get(0))); final IValueExpressionNode negRight = pushNegations( FunctionNode.NOT( (ValueExpressionNode)innerFunctionNode.get(1))); pushNegations( FunctionNode.NOT( (ValueExpressionNode)innerFunctionNode.get(0))); final IValueExpressionNode negRight = pushNegations( FunctionNode.NOT( (ValueExpressionNode)innerFunctionNode.get(1))); return pushNegations((IValueExpressionNode)innerInner); (ValueExpressionNode)pushNegations( (IValueExpressionNode) functionNode.get(0)), (ValueExpressionNode)pushNegations( (IValueExpressionNode) functionNode.get(1))); (ValueExpressionNode)pushNegations( (IValueExpressionNode) functionNode.get(0)), (ValueExpressionNode)pushNegations( (IValueExpressionNode) functionNode.get(1)));
pushNegations( FunctionNode.NOT( (ValueExpressionNode)innerFunctionNode.get(0))); final IValueExpressionNode negRight = pushNegations( FunctionNode.NOT( (ValueExpressionNode)innerFunctionNode.get(1))); pushNegations( FunctionNode.NOT( (ValueExpressionNode)innerFunctionNode.get(0))); final IValueExpressionNode negRight = pushNegations( FunctionNode.NOT( (ValueExpressionNode)innerFunctionNode.get(1))); return pushNegations((IValueExpressionNode)innerInner); (ValueExpressionNode)pushNegations( (IValueExpressionNode) functionNode.get(0)), (ValueExpressionNode)pushNegations( (IValueExpressionNode) functionNode.get(1))); (ValueExpressionNode)pushNegations( (IValueExpressionNode) functionNode.get(0)), (ValueExpressionNode)pushNegations( (IValueExpressionNode) functionNode.get(1)));