'Set up the clause data structures needed.
For each clause, the following changes are made:
- Unit clauses are queued for propagation right away.
- Non-unit clauses have their first and last literals set as sentinels.
- The number of clauses a literal appears in is computed.'

def _initialize_clauses(self, clauses):

    self.clauses = []
    for cls in clauses:
        self.clauses.append(list(cls))
    for i in range(len(self.clauses)):
        if (1 == len(self.clauses[i])):
            self._unit_prop_queue.append(self.clauses[i][0])
            continue
        self.sentinels[self.clauses[i][0]].add(i)
        self.sentinels[self.clauses[i][(-1)]].add(i)
        for lit in self.clauses[i]:
            self.occurrence_count[lit] += 1
