docs: def _partition_group(self, group):
          """
          Args:
              group (list):  A group of states
          Return:
              tuple: A set of two groups
          """
          for (group1, group2, distinguish_string) in self.bookeeping:
              if group & group1 != set() and not group.issubset(group1):
                  new_g1 = group & group1
                  new_g2 = group - group1
                  return (new_g1, new_g2, distinguish_string)
              if group & group2 != set() and not group.issubset(group2):
                  new_g1 = group & group2
                  new_g2 = group - group2
                  return (new_g1, new_g2, distinguish_string)
          assert False, "Unmatched group partition"