public static Keyword sumOfNumbersSpecialist(ControlFrame frame, Keyword lastmove) {
    { Proposition proposition = frame.proposition;
      Stella_Object listarg = (proposition.arguments.theArray)[0];
      Stella_Object listskolem = Logic.argumentBoundTo(listarg);
      Stella_Object sumarg = (proposition.arguments.theArray)[1];
      NumberWrapper sum = IntegerWrapper.wrapInteger(0);

      lastmove = lastmove;
      if ((listskolem != null) &&
          (!Logic.logicalCollectionP(listskolem))) {
        {
          System.out.println();
          System.out.println("Non list appears in second argument to 'SUM-OF-NUMBERS'");
          System.out.println();
        }
;
        return (Logic.KWD_TERMINAL_FAILURE);
      }
      { List listvalue = Logic.assertedCollectionMembers(listskolem, true);

        { Stella_Object v = null;
          Cons iter000 = listvalue.theConsList;

          for (;!(iter000 == Stella.NIL); iter000 = iter000.rest) {
            v = iter000.value;
            if (Stella_Object.isaP(v, Logic.SGT_STELLA_NUMBER_WRAPPER)) {
              sum = PlKernelKb.plusComputation(((NumberWrapper)(v)), sum);
            }
            else {
              return (Logic.KWD_TERMINAL_FAILURE);
            }
          }
        }
        return (Logic.selectTestResult(Logic.bindArgumentToValueP(sumarg, sum, true), true, frame));
      }
    }
  }