public static Iterator allTrueDependentPropositions(Stella_Object self, Surrogate relation, boolean specializeP) {
    if (!((relation != null) ||
        (!specializeP))) {
      System.err.print("Safety violation: INTERNAL-ERROR: Expected defined relation argument");
    }
    { Cons pattern = ((relation != null) ? Cons.cons(Logic.KWD_RELATION, Cons.cons(((Stella.NIL == null) ? Stella.NIL : Stella.NIL), Cons.cons(relation, Cons.cons(Logic.valueOf(self), Stella.NIL)))) : Cons.cons(Logic.KWD_DEPENDENTS, Cons.cons(((Stella.NIL == null) ? Stella.NIL : Stella.NIL), Cons.cons(Logic.valueOf(self), Stella.NIL))));
      SequenceIndex index = Logic.selectPropositions(pattern);
      TruePropositionsIterator iterator = null;

      if (SequenceIndex.emptyPropositionsIndexP(index, self, specializeP)) {
        return (Logic.EMPTY_PROPOSITIONS_ITERATOR);
      }
      iterator = (specializeP ? SpecializingPropositionsIterator.newSpecializingPropositionsIterator() : TruePropositionsIterator.newTruePropositionsIterator());
      iterator.selectionPattern = pattern;
      iterator.propositionCursor = index.allocateIterator();
      return (iterator);
    }
  }