public static void addDependentPropositionToSpecializedIndex(BacklinksIndex index, Proposition proposition, Stella_Object argument) {
    { HashTable table = index.predicatePropositionsTable;

      if (table == null) {
        table = HashTable.newHashTable();
        index.predicatePropositionsTable = table;
        { Proposition prop = null;
          Iterator iter000 = index.dependentPropositionsList.allocateIterator();

          while (iter000.nextP()) {
            prop = ((Proposition)(iter000.value));
            BacklinksIndex.addDependentPropositionToSpecializedIndex(index, prop, argument);
          }
        }
      }
      if (proposition.kind == Logic.KWD_ISA) {
        if (index.dependentIsaPropositionsList == null) {
          index.dependentIsaPropositionsList = Logic.createSequenceIndex(((Module)(Stella.$MODULE$.get())), Cons.cons(Logic.KWD_ISA, Cons.cons(((Stella.NIL == null) ? Stella.NIL : Stella.NIL), Cons.cons(argument, Stella.NIL))));
        }
        index.dependentIsaPropositionsList.insert(proposition);
      }
      else {
        { Surrogate surrogate = ((Surrogate)(proposition.operator));
          SequenceIndex bucket = null;

          bucket = ((SequenceIndex)(table.lookup(surrogate)));
          if (bucket == null) {
            bucket = Logic.createSequenceIndex(((Module)(Stella.$MODULE$.get())), Cons.cons(Logic.KWD_RELATION, Cons.cons(((Stella.NIL == null) ? Stella.NIL : Stella.NIL), Cons.cons(surrogate, Cons.cons(argument, Stella.NIL)))));
            table.insertAt(surrogate, bucket);
          }
          bucket.insert(proposition);
        }
      }
    }
  }