@Test public void testSimple() { assertEquals(eliminateIte(Ite(a, b, c)), And(Or(Not(a), b), Or(a, c))); assertEquals(eliminateIte(Ite(a, Ite(b, c, d), e)), And(Or(Not(a), And(Or(Not(b), c), Or(b, d))), Or(a, e))); }
static <T extends Type> Expr<T> eliminateIte(final Expr<T> expr) { return removeIte(propagateIte(expr)); }
ExprIteEliminator { static <T extends Type> Expr<T> eliminateIte(final Expr<T> expr) { return removeIte(propagateIte(expr)); } }
ExprIteEliminator { static <T extends Type> Expr<T> eliminateIte(final Expr<T> expr) { return removeIte(propagateIte(expr)); } private  ExprIteEliminator(); }
ExprIteEliminator { static <T extends Type> Expr<T> eliminateIte(final Expr<T> expr) { return removeIte(propagateIte(expr)); } private  ExprIteEliminator();  }
ExprIteEliminator { static <T extends Type> Expr<T> eliminateIte(final Expr<T> expr) { return removeIte(propagateIte(expr)); } private  ExprIteEliminator();   }