Describir: Linear and combinatorial programming