code: def pl_resolve(ci, cj):
      
      clauses = []
      for di in disjuncts(ci):
          for dj in disjuncts(cj):
              if di == ~dj or ~di == dj:
                  dnew = unique(removeall(di, disjuncts(ci)) +
                                removeall(dj, disjuncts(cj)))
                  clauses.append(associate('|', dnew))
      return clauses
docs: Return all clauses that can be obtained by resolving clauses ci and cj.
      >>> for res in pl_resolve(to_cnf(A|B|C), to_cnf(~B|~C|F)):
      ...    ppset(disjuncts(res))
      set([A, C, F, ~C])
      set([A, B, F, ~B])