public static Cons transformBooleanProceduralExpression(Cons statement, Cons vrexpression, Object [] MV_returnarray) {
    if (vrexpression.value == Stella.SYM_STELLA_VRLET) {
      return (Cons.transformVrletExpression(statement, vrexpression, MV_returnarray));
    }
    { Symbol testvariable = Stella.localGensym("TEST-VALUE");
      Cons otree = null;

      Stella_Object.substituteOnce(statement, testvariable, vrexpression);
      otree = ((Cons)(Stella_Object.walkWithoutTypeTree(Cons.list$(Cons.cons(Stella.SYM_STELLA_LET, Cons.cons(Cons.cons(Cons.cons(testvariable, Cons.cons(Stella.SYM_STELLA_FALSE, Stella.NIL)), Stella.NIL), Cons.cons(Stella_Object.helpTransformBooleanProceduralExpression(vrexpression, testvariable).concatenate(Cons.cons(statement, Stella.NIL), Stella.NIL), Stella.NIL)))))));
      { Cons _return_temp = otree;

        MV_returnarray[0] = Stella.SGT_STELLA_BOOLEAN;
        return (_return_temp);
      }
    }
  }