/* test if the new clause is redundant or subsompted by another */ #define OLD_CLAUSE_REDUNDANT -77 #define NEW_CLAUSE_REDUNDANT -7 int smaller_than(int lit1, int lit2) { return ((lit1abs(lits[jj])) { lit1=lits[jj]; lits[jj]=lit; lit=lit1; } else if (lit == lits[jj]) { lits[jj] = lits[length-1]; jj--; length--; lits[length] = 0; printf("literal %d is redundant in clause %d \n", lit, i+1); } else if (abs(lit) == abs(lits[jj])) { tautologie = TRUE; break; } } if (tautologie == TRUE) break; else lits[ii] = lit; } if (tautologie == FALSE) { sat[i]= (int *)malloc((length+1) * sizeof(int)); for (j=0; j=NB_VAR) { var=sat[i][j]-NB_VAR; neg_nb[var]++; } else { var=sat[i][j]; pos_nb[var]++; } } if (sat[i][clause_length[i]] !=NONE) printf("erreur "); } for(clause=0;clause