<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def address_lookup(hypervisor, address_pool):
 """Retrieves a valid and available network IP address."""

    address_pool = set(address_pool)
    active_addresses = set(active_network_addresses(hypervisor))

    try:
        return random.choice(tuple(address_pool - active_addresses))
    except IndexError:
        raise RuntimeError("All IP addresses are in use")