class Abstraction_Tree():

    class Abs_node():
        def __init__(self, split, abs_state):
            self._split = split
            self._state = abs_state
            self._parent = None
            self._child = []
           
    def find_node (self, abs_state):
        found = None
        for leaf in self._leaves:
            if leaf == abs_state: 
                found = self._leaves[leaf]
                break
        return found

    def __init__(self, root_split, root_abs_state):
        self._leaves = {}
        self._root = self.add_node(root_split, root_abs_state)
        
    def add_node (self, split, abs_state):
        node  = self.Abs_node(split, abs_state)
        self._leaves[abs_state] = node
        return node

    

            








