docs: def is_b_connected(H, source_node, target_node):
      """Checks if a target node is B-connected to a source node.
  
      A node t is B-connected to a node s iff:
          - t is s, or
          - there exists an edge in the backward star of t such that all nodes in
              the tail of that edge are B-connected to s
  
      In other words, this method determines if a target node can be B-visited
      from the source node in the sense of the 'B-Visit' algorithm. Refer to
      'b_visit's documentation for more details.
  
      :param H: the hypergraph to check B-connectedness on.
      :param source_node: the node to check B-connectedness to.
      :param target_node: the node to check B-connectedness of.
      :returns: bool -- whether target_node can be visited from source_node.
  
      """
      b_visited_nodes, Pv, Pe, v = b_visit(H, source_node)
      return target_node in b_visited_nodes