Top Program Construction and Reduction for polynomial time Meta-Interpretive Learning