public static Keyword differentSpecialist(ControlFrame frame, Keyword lastmove) {
    { Vector arguments = frame.proposition.arguments;
      Cons argumentvalues = Stella.NIL;
      boolean unboundargsP = false;
      Stella_Object value = null;

      lastmove = lastmove;
      { 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(Logic.valueOf(Logic.argumentBoundTo(arg)), Stella.NIL);
              if (argumentvalues == Stella.NIL) {
                argumentvalues = collect000;
              }
              else {
                Cons.addConsToEndOfConsList(argumentvalues, collect000);
              }
            }
          }
          else {
            {
              collect000.rest = Cons.cons(Logic.valueOf(Logic.argumentBoundTo(arg)), Stella.NIL);
              collect000 = collect000.rest;
            }
          }
        }
      }
      while (!(argumentvalues == Stella.NIL)) {
        value = argumentvalues.value;
        if (value == null) {
          unboundargsP = true;
        }
        else {
          { boolean foundP000 = false;

            { Stella_Object value2 = null;
              Cons iter000 = argumentvalues.rest;

              loop002 : for (;!(iter000 == Stella.NIL); iter000 = iter000.rest) {
                value2 = iter000.value;
                if (Stella_Object.eqlP(value, value2)) {
                  foundP000 = true;
                  break loop002;
                }
              }
            }
            if (foundP000) {
              return (Logic.selectTestResult(false, true, frame));
            }
          }
        }
        argumentvalues = argumentvalues.rest;
      }
      if (unboundargsP) {
        return (Logic.KWD_FAILURE);
      }
      else {
        return (Logic.selectTestResult(true, true, frame));
      }
    }
  }