'Returns True if mapping G1_node to G2_node is semantically feasible.'

def semantic_feasibility(self, G1_node, G2_node):

    feasible = _semantic_feasibility(self, G1_node, G2_node)
    if (not feasible):
        return False
    self.G1_adj = self.G1.pred
    self.G2_adj = self.G2.pred
    feasible = _semantic_feasibility(self, G1_node, G2_node)
    self.G1_adj = self.G1.adj
    self.G2_adj = self.G2.adj
    return feasible
