docs: private static void addSubjectsToPredicateList(List<String> subjects, List<Integer> argNums,
        IndexedList<String> semanticPredicates, Map<Integer, Integer> maxNumArgs) {
      Preconditions.checkArgument(subjects.size() == argNums.size());
      for (int i = 0; i < subjects.size(); i++) {
        String subject = subjects.get(i);
        int argNum = argNums.get(i);
        semanticPredicates.add(subject);
        int predicateIndex = semanticPredicates.getIndex(subject);
  
        if (!maxNumArgs.containsKey(predicateIndex)) {
          maxNumArgs.put(predicateIndex, argNum);
        } else {
          maxNumArgs.put(predicateIndex, Math.max(maxNumArgs.get(predicateIndex), argNum));
        }
      }
    }