public static Stella_Object selectArgumentWithBacklinks(Proposition proposition, Object [] MV_returnarray) {
    { Surrogate relation = ((Surrogate)(proposition.operator));
      Keyword kind = proposition.kind;
      Stella_Object value = null;
      int count = Stella.NULL_INTEGER;
      int lowestbacklinkcount = Stella.NULL_INTEGER;
      Stella_Object bestargument = null;
      boolean founddiscouragedargumentP = false;

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

        loop000 : for (;index000 < length000; index000 = index000 + 1) {
          arg = (vector000.theArray)[index000];
          value = Logic.argumentBoundTo(arg);
          if (value != null) {
            if (false) {
              founddiscouragedargumentP = true;
              continue loop000;
            }
            count = Logic.countBacklinksOnRelation(value, kind, relation);
            if ((count != Stella.NULL_INTEGER) &&
                ((lowestbacklinkcount == Stella.NULL_INTEGER) ||
                 (count < lowestbacklinkcount))) {
              lowestbacklinkcount = count;
              bestargument = value;
            }
          }
        }
      }
      if ((lowestbacklinkcount == Stella.NULL_INTEGER) &&
          founddiscouragedargumentP) {
        { Stella_Object arg = null;
          Vector vector001 = proposition.arguments;
          int index001 = 0;
          int length001 = vector001.length();

          loop001 : for (;index001 < length001; index001 = index001 + 1) {
            arg = (vector001.theArray)[index001];
            value = Logic.argumentBoundTo(arg);
            if (value != null) {
              if (!false) {
                continue loop001;
              }
              count = Logic.countBacklinksOnRelation(value, kind, relation);
              if ((count != Stella.NULL_INTEGER) &&
                  ((lowestbacklinkcount == Stella.NULL_INTEGER) ||
                   (count < lowestbacklinkcount))) {
                lowestbacklinkcount = count;
                bestargument = value;
              }
            }
          }
        }
      }
      if (lowestbacklinkcount == Stella.NULL_INTEGER) {
        { Stella_Object _return_temp = null;

          MV_returnarray[0] = BooleanWrapper.wrapBoolean(false);
          return (_return_temp);
        }
      }
      else {
        { Stella_Object _return_temp = bestargument;

          MV_returnarray[0] = BooleanWrapper.wrapBoolean(false);
          return (_return_temp);
        }
      }
    }
  }