def delete_satellite_gateway(vpn, elements):
    """
    Delete a satellite gateway.
    
    :param PolicyVPN vpn: policy VPN reference
    :param list elements: list of Element instances
    :return: True | False depending on whether an operation taken
    :raises PolicyCommandFailed: failure during deletion
    """
    changed = False
    if elements:
        element_map = {element.href: element for element in elements}
        for gw in vpn.satellite_gateway_node.all():
            if gw.gateway.href in element_map:
                gw.delete()  
                changed = True
    return changed