public static boolean migrateConsequentGoalsToAntecedentP(Proposition self) {
    { Proposition antecedent = null;
      Proposition consequent = ((Proposition)((self.arguments.theArray)[1]));
      Cons positivegoals = Stella.NIL;
      Cons negatedgoals = Stella.NIL;

      if (!(consequent.kind == Logic.KWD_OR)) {
        return (false);
      }
      { Stella_Object arg = null;
        Vector vector000 = consequent.arguments;
        int index000 = 0;
        int length000 = vector000.length();

        for (;index000 < length000; index000 = index000 + 1) {
          arg = (vector000.theArray)[index000];
          { Proposition disjunct = ((Proposition)(arg));

            if (disjunct.kind == Logic.KWD_NOT) {
              negatedgoals = Cons.cons((disjunct.arguments.theArray)[0], negatedgoals);
            }
            else {
              positivegoals = Cons.cons(disjunct, positivegoals);
            }
          }
        }
      }
      if ((!(positivegoals == Stella.NIL)) &&
          (!(negatedgoals == Stella.NIL))) {
        antecedent = Logic.conjoinPropositions(negatedgoals.reverse());
        consequent = Logic.disjoinPropositions(positivegoals.reverse());
        Proposition.normalizeProposition(antecedent);
        Proposition.normalizeProposition(consequent);
        (self.arguments.theArray)[0] = antecedent;
        (self.arguments.theArray)[1] = consequent;
        return (true);
      }
      return (false);
    }
  }