public static Keyword rangeTypeSpecialist(ControlFrame frame, Keyword lastmove) {
    { Proposition proposition = frame.proposition;
      Stella_Object relation = Logic.argumentBoundTo((proposition.arguments.theArray)[0]);
      Stella_Object instance = Logic.argumentBoundTo((proposition.arguments.theArray)[1]);
      Stella_Object valuetypearg = (proposition.arguments.theArray)[2];
      Stella_Object valuetypevalue = Logic.argumentBoundTo(valuetypearg);

      lastmove = lastmove;
      if (!Logic.$ACCELERATE_FRAME_COMPUTATIONSp$) {
        return (Logic.KWD_FAILURE);
      }
      if ((relation == null) ||
          (instance == null)) {
        return (Logic.KWD_FAILURE);
      }
      if (valuetypevalue == null) {
        return (Logic.KWD_FAILURE);
      }
      if (Stella_Object.isaP(valuetypevalue, Logic.SGT_STELLA_SURROGATE)) {
        valuetypevalue = Logic.surrogateToDescription(((Surrogate)(valuetypevalue)));
      }
      if ((!Stella_Object.isaP(relation, Logic.SGT_LOGIC_NAMED_DESCRIPTION)) ||
          ((!Stella_Object.isaP(valuetypevalue, Logic.SGT_LOGIC_NAMED_DESCRIPTION)) ||
           (valuetypevalue == null))) {
        return (Logic.KWD_FAILURE);
      }
      if (NamedDescription.testRangeTypeP(((NamedDescription)(relation)), instance, ((NamedDescription)(valuetypevalue)))) {
        return (Logic.selectTestResult(true, true, frame));
      }
      else {
        return (Logic.KWD_FAILURE);
      }
    }
  }