reduce a expression