public static Cons extractGoalArguments(Proposition goal) {
    { Vector arguments = goal.arguments;

      { Keyword testValue000 = goal.kind;

        if ((testValue000 == Logic.KWD_ISA) ||
            ((testValue000 == Logic.KWD_PREDICATE) ||
             ((testValue000 == Logic.KWD_FUNCTION) ||
              (testValue000 == Logic.KWD_IMPLIES)))) {
          { Cons result = Stella.NIL;

            { Stella_Object arg = null;
              Vector vector000 = arguments;
              int index000 = 0;
              int length000 = vector000.length();
              Cons collect000 = null;

              for (;index000 < length000; index000 = index000 + 1) {
                arg = (vector000.theArray)[index000];
                if (collect000 == null) {
                  {
                    collect000 = Cons.cons(arg, Stella.NIL);
                    if (result == Stella.NIL) {
                      result = collect000;
                    }
                    else {
                      Cons.addConsToEndOfConsList(result, collect000);
                    }
                  }
                }
                else {
                  {
                    collect000.rest = Cons.cons(arg, Stella.NIL);
                    collect000 = collect000.rest;
                  }
                }
              }
            }
            return (result);
          }
        }
        else if (testValue000 == Logic.KWD_NOT) {
          return (Proposition.extractGoalArguments(((Proposition)((arguments.theArray)[0]))));
        }
        else {
          return (Stella.NIL);
        }
      }
    }
  }