Symbolic rewriting techniques (Birkhäuser, 1998)