public static BoolExpr GetSpec(ERelationalOperators opr, ArithExpr arg_1, ArithExpr arg_2, Context ctx)
        {
            switch (opr)
            {
            case (ERelationalOperators.Eq):
                return(ctx.MkEq(arg_1, arg_2));

            case (ERelationalOperators.Gt):
                return(ctx.MkGt(arg_1, arg_2));

            case (ERelationalOperators.L):
                return(ctx.MkLt(arg_1, arg_2));

            case (ERelationalOperators.GtEq):
                var first  = ctx.MkEq(arg_1, arg_2);
                var second = ctx.MkGt(arg_1, arg_2);
                return(ctx.MkOr(first, second));

            case (ERelationalOperators.LEq):
                var firsts  = ctx.MkEq(arg_1, arg_2);
                var seconds = ctx.MkLt(arg_1, arg_2);
                return(ctx.MkOr(firsts, seconds));
            }
            return(null);
        }
        public static string GetSymbolFor(ERelationalOperators operatorKey)
        {
            string symbol;

            RelationalOperators.operators.TryGetValue(operatorKey, out symbol);
            return(symbol);
        }