def _rem_redundancy(l1, terms):
 essential = []
 for x in terms:
  temporary = []
  for y in l1:
   if _compare_term(x, y):
    temporary.append(y)
  if (len(temporary) == 1):
   if (temporary[0] not in essential):
    essential.append(temporary[0])
 for x in terms:
  for y in essential:
   if _compare_term(x, y):
    break
  else:
   for z in l1:
    if _compare_term(x, z):
     if (z not in essential):
      essential.append(z)
     break
 return essential

def _rem_redundancy ( l1 , terms ) : essential = [ ] for x in terms : temporary = [ ] for y in l1 : if _compare_term ( x , y ) : temporary . append ( y ) if ( len ( temporary ) == 1 ) : if ( temporary [ 0 ] not in essential ) : essential . append ( temporary [ 0 ] ) for x in terms : for y in essential : if _compare_term ( x , y ) : break else : for z in l1 : if _compare_term ( x , z ) : if ( z not in essential ) : essential . append ( z ) break return essential
after the truth table has been sufficiently simplified .