import ipaddress


def ipv4_to_ipv6(v6network_string, v4address):
    """Transform IPv4 address to IPv6. This will combine four hextets of an IPv6 network
    with four pseudo-hextets of an IPv4 address into a valid IPv6 address.
    Args:
        v6network_string: IPv6 network in prefix notation
        v4address: IPv4 address
    Returns:
        IPv6 address on the given network, in compressed notation
    """
    v6network = ipaddress.IPv6Network(v6network_string)
    part1 = v6network.network_address.compressed
    part3 = v6network.prefixlen
    part2 = v4address.replace('.', ':')
    v6address_string = f"{part1}{part2}/{part3}"

    v6address = ipaddress.IPv6Interface(v6address_string)
    assert v6address in v6network  # verify that address is on the given network

    return v6address.compressed