introduce AbstractMathProg[Solver|Model] scheme