+ Edge result = E_NULL;
+ if(getSizeVectorEdge(clauses) != 0){
+ result=constraintOR(This->cnf, getSizeVectorEdge(clauses), exposeArrayEdge(clauses));
+ if(generateNegation){
+ ASSERT(getSizeVectorEdge(undefClauses) == 0);
+ result = constraintNegate(result);
+ }
+ }
+ if(getSizeVectorEdge(undefClauses)!= 0){
+ ASSERT(!generateNegation);
+ Edge tmp = constraintAND(This->cnf, getSizeVectorEdge(undefClauses), exposeArrayEdge(undefClauses));
+ result= edgeIsNull(result)? tmp : constraintAND2(This->cnf, tmp, result);