code: @Override
      public int compare(TemporalPropositionDefinition a1, 
              TemporalPropositionDefinition a2) {
          if (a1 == a2) {
              return 0;
          } else {
              Integer index1 = rule2Index.get(a1.getId());
              Integer index2 = rule2Index.get(a2.getId());
              return index1.compareTo(index2);
          }
      }
docs: Compares two temporal proposition definitions topologically according to
  the inverse of their abstractedFrom or inducedBy relationships.
  
  @param a1 an {@link TemporalPropositionDefinition}.
  @param a2 another {@link TemporalPropositionDefinition}.
  @return a negative integer, zero, or a positive integer as the first
  argument is less than, equal to, or greater than the second.