| add_to_heap/4 | Adds 
Key with priority Priority to Heap0, constructing a new heap in Heap. | 
| delete_from_heap/4 | Deletes 
Key from Heap0, leaving its priority in Priority and the resulting data 
structure in Heap. | 
| empty_heap/1 | True 
if Heap is an empty heap. | 
| get_from_heap/4 | Retrieves 
the minimum-priority pair Priority-Key from Heap0. | 
| heap_size/2 | Determines 
the number of elements in Heap. | 
| heap_to_list/2 | Constructs 
a list List of Priority-Element terms, ordered by (ascending) priority. | 
| is_heap/1 | Returns 
true if X is a heap. | 
| list_to_heap/2 | If 
List is a list of Priority-Element terms, constructs a heap out of List. | 
| merge_heaps/3 | Merge 
the two heaps Heap0 and Heap1 in Heap. | 
| min_of_heap/3 | Unifies 
Key with the minimum-priority element of Heap and Priority with its 
priority value. | 
| min_of_heap/5 | Gets 
the two minimum-priority elements from Heap. | 
| singleton_heap/3 | True 
if Heap is a heap with the single element Priority-Key. |