@Test public void testMod() { assertEquals(Int(1), simplify(Mod(Int(6), Int(5)))); assertEquals(Int(1), simplify(Mod(Int(6), Int(5)))); assertEquals(Int(2), simplify(Mod(Int(5), Int(3)))); assertEquals(Int(1), simplify(Mod(Int(-5), Int(3)))); assertEquals(Int(2), simplify(Mod(Int(5), Int(-3)))); assertEquals(Int(1), simplify(Mod(Int(-5), Int(-3)))); assertEquals(Int(0), simplify(Mod(Int(3), Int(-3)))); assertEquals(Int(0), simplify(Mod(Int(-3), Int(-3)))); assertEquals(Int(0), simplify(Mod(Int(-3), Int(3)))); assertEquals(Int(0), simplify(Mod(Int(3), Int(3)))); }
@SuppressWarnings("unchecked") public static <T extends Type> Expr<T> simplify(final Expr<T> expr, final Valuation valuation) { return (Expr<T>) TABLE.dispatch(expr, valuation); }
ExprSimplifier { @SuppressWarnings("unchecked") public static <T extends Type> Expr<T> simplify(final Expr<T> expr, final Valuation valuation) { return (Expr<T>) TABLE.dispatch(expr, valuation); } }
ExprSimplifier { @SuppressWarnings("unchecked") public static <T extends Type> Expr<T> simplify(final Expr<T> expr, final Valuation valuation) { return (Expr<T>) TABLE.dispatch(expr, valuation); } private  ExprSimplifier(); }
ExprSimplifier { @SuppressWarnings("unchecked") public static <T extends Type> Expr<T> simplify(final Expr<T> expr, final Valuation valuation) { return (Expr<T>) TABLE.dispatch(expr, valuation); } private  ExprSimplifier(); @SuppressWarnings("unchecked") static Expr<T> simplify(final Expr<T> expr, final Valuation valuation); }
ExprSimplifier { @SuppressWarnings("unchecked") public static <T extends Type> Expr<T> simplify(final Expr<T> expr, final Valuation valuation) { return (Expr<T>) TABLE.dispatch(expr, valuation); } private  ExprSimplifier(); @SuppressWarnings("unchecked") static Expr<T> simplify(final Expr<T> expr, final Valuation valuation);  }