lazy-reduction