public static Keyword uSignumSpecialist(ControlFrame frame, Keyword lastmove) {
    { Proposition proposition = frame.proposition;
      Stella_Object mainarg = (proposition.arguments.theArray)[0];
      Stella_Object mainargvalue = Logic.argumentBoundTo(mainarg);
      DimNumberLogicWrapper mainargdim = ((mainargvalue == null) ? ((DimNumberLogicWrapper)(null)) : Units.helpGetDimNumber(mainargvalue));
      Stella_Object signumarg = (proposition.arguments.theArray)[1];
      Stella_Object signumargvalue = Logic.argumentBoundTo(signumarg);

      lastmove = lastmove;
      if (mainargvalue == null) {
        return (Units.KWD_FAILURE);
      }
      else {
        if (signumargvalue == null) {
          if (mainargdim != null) {
            return (Logic.selectProofResult(Logic.bindArgumentToValueP(signumarg, IntegerWrapper.wrapInteger(((DimNumber)(mainargdim.wrapperValue)).signum()), true), false, true));
          }
          else {
            return (Units.KWD_TERMINAL_FAILURE);
          }
        }
        else {
          if (Stella_Object.isaP(signumargvalue, Units.SGT_STELLA_INTEGER_WRAPPER) &&
              (mainargdim != null)) {
            if (((DimNumber)(mainargdim.wrapperValue)).signum() == ((IntegerWrapper)(signumargvalue)).wrapperValue) {
              {
                ControlFrame.setFrameTruthValue(frame, Logic.TRUE_TRUTH_VALUE);
                return (Units.KWD_FINAL_SUCCESS);
              }
            }
            else {
              {
                ControlFrame.setFrameTruthValue(frame, Logic.FALSE_TRUTH_VALUE);
                return (Units.KWD_TERMINAL_FAILURE);
              }
            }
          }
          else {
            return (Units.KWD_TERMINAL_FAILURE);
          }
        }
      }
    }
  }