@Override
 public BooleanFormula translate(FormulaManagerView fmgr) {
   BooleanFormula form = null;
   Formula lhs = LHS.translate(fmgr);
   Formula rhs = RHS.translate(fmgr);
   switch (reln) {
     case EQUAL:
       form = fmgr.makeEqual(lhs, rhs);
       break;
     case LEQ:
       form = fmgr.makeLessOrEqual(lhs, rhs, true);
       break;
     case LT:
       form = fmgr.makeLessThan(lhs, rhs, true);
       break;
   }
   return form;
 }
  @Before
  public void setUp() throws Exception {
    requireArrays();
    requireQuantifiers();

    this.mgrv = new FormulaManagerView(factory, config, TestLogManager.getInstance());
    this.solver = new Solver(mgrv, factory, config, TestLogManager.getInstance());
    this.afm = mgrv.getArrayFormulaManager();
    this.bfm = mgrv.getBooleanFormulaManager();
    this.ifm = mgrv.getIntegerFormulaManager();
    this.qfm = mgrv.getQuantifiedFormulaManager();

    _x = ifm.makeVariable("x");
    _b = afm.makeArray("b", FormulaType.IntegerType, FormulaType.IntegerType);

    _b_at_x_eq_1 = ifm.equal(afm.select(_b, _x), ifm.makeNumber(1));
    _b_at_x_eq_0 = ifm.equal(afm.select(_b, _x), ifm.makeNumber(0));

    _forall_x_bx_1 = qfm.forall(_x, _b_at_x_eq_1);
    _forall_x_bx_0 = qfm.forall(_x, _b_at_x_eq_0);
  }
 @Override
 public BooleanFormula getInvariantFor(
     CFANode pNode, FormulaManagerView pFmgr, PathFormulaManager pfmgr) {
   return pFmgr.getBooleanFormulaManager().makeBoolean(true);
 }