code: def _theorem6p3():
      
      pruning_set3 = set()
  
      def _prune3(x, as_list, b):
          for a in as_list:
              key = (tuple(x), a, b)  # (s,a,b) with (s,a) explored
              if key in pruning_set3:
                  return True
          return False
  
      def _explored3(x, a, as_list):
          for b in as_list:
              prunable = (tuple(x), a, b)  # (s,a,b) with (s,a) explored
              pruning_set3.add(prunable)
  
      return _prune3, _explored3
docs: See Theorem 6.3 in paper.
      Prunes (s,b) when (s,a) is explored, b (almost) simplicial in (s,a), and a (almost) simplicial in (s,b)