public static Cons collectUnresolvedSlotReferences(Proposition self) {
    { Cons unresolvedslotreferences = Stella.NIL;

      if (Stella.getQuotedTree("((:PREDICATE :FUNCTION) \"/LOGIC\")", "/LOGIC").memberP(self.kind) &&
          Stella_Object.isaP(self.operator, Logic.SGT_STELLA_SYMBOL)) {
        unresolvedslotreferences = Cons.cons(self, unresolvedslotreferences);
      }
      { 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 (Stella_Object.isaP(arg, Logic.SGT_LOGIC_PROPOSITION)) {
            { Proposition u = null;
              Cons iter000 = Proposition.collectUnresolvedSlotReferences(((Proposition)(arg)));

              for (;!(iter000 == Stella.NIL); iter000 = iter000.rest) {
                u = ((Proposition)(iter000.value));
                unresolvedslotreferences = Cons.cons(u, unresolvedslotreferences);
              }
            }
          }
        }
      }
      return (unresolvedslotreferences);
    }
  }