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); }