code: def get_induced_subhypergraph(self, nodes):
          
          sub_H = self.copy()
          sub_H.remove_nodes(sub_H.get_node_set() - set(nodes))
          return sub_H
docs: Gives a new hypergraph that is the subhypergraph of the current
          hypergraph induced by the provided set of nodes. That is, the induced
          subhypergraph's node set corresponds precisely to the nodes provided,
          and the coressponding hyperedges in the subhypergraph are only those
          from the original graph consist of tail and head sets that are subsets
          of the provided nodes.
  
          :param nodes: the set of nodes to find the induced subhypergraph of.
          :returns: DirectedHypergraph -- the subhypergraph induced on the
                  provided nodes.