Implement a priority queue from scratch.
Use a binary min-heap where lower numeric priorities are removed first, and preserve insertion order when priorities are equal. Implement process_operations(operations), where each operation is ['push', value, priority], ['peek'], ['pop'], or ['is_empty']; return results for query operations only. peek and pop return [value, priority], while is_empty returns a Boolean.
def process_operations(operations):