algorithm

reduction rule