A symbolic manipulation system for combinatorial problems