Dimension and finite reduction in linear semi-infinite programming