public static SequenceIndex findSimilarPropositions(Proposition self) {
    if (self.kind == Logic.KWD_FUNCTION) {
      { Stella_Object arg = null;
        Iterator iter000 = self.arguments.butLast();

        while (iter000.nextP()) {
          arg = iter000.value;
          if (Logic.instanceHasBacklinksP(Logic.valueOf(arg))) {
            return (Logic.unfilteredDependentPropositions(Logic.valueOf(arg), ((Surrogate)(self.operator))));
          }
        }
      }
    }
    else {
      { Stella_Object arg = null;
        Vector vector000 = self.arguments;
        int index000 = 0;
        int length000 = vector000.length();

        for (;index000 < length000; index000 = index000 + 1) {
          arg = (vector000.theArray)[index000];
          if (Logic.instanceHasBacklinksP(arg)) {
            return (Logic.unfilteredDependentPropositions(arg, ((Surrogate)(self.operator))));
          }
        }
      }
    }
    Proposition.rewrapPropositionArguments(self);
    { Stella_Object arg = null;
      Vector vector001 = self.arguments;
      int index001 = 0;
      int length001 = vector001.length();

      for (;index001 < length001; index001 = index001 + 1) {
        arg = (vector001.theArray)[index001];
        if ((arg != null) &&
            Logic.instanceHasBacklinksP(arg)) {
          return (Logic.unfilteredDependentPropositions(arg, ((Surrogate)(self.operator))));
        }
      }
    }
    return (Logic.NIL_NON_PAGING_INDEX);
  }