code: public int decreaseKey(E o) {
      HeapEntry<E> entry = getEntry(o);
      if (o != entry.object) {
        if (cmp.compare(o, entry.object) < 0) {
          entry.object = o;
        }
      }
      return heapifyUp(entry);
    }
docs: Changes the position of an element o in the heap based on a
  change in the ordering of o.  If o's key has actually increased,
  it will do nothing, particularly not an "increase key".
  
  @param o an <code>Object</code> value
  @return the number of swaps done on decrease.