def assume(mapping, a, b):
    """assume that a -> b and return the resulting mapping"""
    res = {k: v.copy() for k, v in mapping.items()}
    res[a] = set(b)
    for k, v in res.items():
        if b in v and k != a:
            v.remove(b)
    return res