public static bool checkPumping(
            ArithmeticLanguage language,
            SymbolicString pumpingString,
            Split split,
            LinearIntegerExpression pump)
        {
            if (pump.isConstant())
            {
                var k            = pump.constant;
                var pumpedMid    = SymbolicString.Concat(Enumerable.Repeat(split.mid, k));
                var pumpedString = SymbolicString.Concat(split.start, pumpedMid, split.end);

                return(checkNonContainment(pumpedString, language, split.constraints));
            }
            else
            {
                throw new NotImplementedException();
            }
        }
        public static bool checkPumping(
            ArithmeticLanguage language,
            SymbolicString pumpingString,
            Split split,
            LinearIntegerExpression pump)
        {
            if (pump.isConstant())
            {
                var k = pump.constant;
                var pumpedMid = SymbolicString.Concat(Enumerable.Repeat(split.mid, k));
                var pumpedString = SymbolicString.Concat(split.start, pumpedMid, split.end);

                return checkNonContainment(pumpedString, language, split.constraints);
            }
            else
            {
                throw new NotImplementedException();
            }
        }
 public bool isUnary()
 {
     return(arithmetic_operand1.GetVariables().Count <= 1 && arithmetic_operand2.GetVariables().Count <= 1 && (arithmetic_operand1.isConstant() || arithmetic_operand2.isConstant()));
 }