  The AHU-algorithm solves the computationally difficult graph isomorphism
problem for rooted trees, and does so with a linear time complexity. Although
the AHU-algorithm has remained state of the art for almost 50 years, it has
been criticized for being unclearly presented, and no complete proof of
correctness has been given. In this text, that gap is filled: we formalize the
algorithm's main point of assigning and compressing labels to provide a
characterization of isomorphic rooted trees, and then proceed with proving the
correctness and optimal runtime of the AHU-algorithm.
