def normal_lower_bound(probability, mu=0, sigma=1):
    """ returns the z for which P(Z >= z) = probability """
    return rv.inverse_normal_cdf(1 - probability, mu, sigma)
def normal_probability_between(lo, hi, mu=0, sigma=1):
    return rv.normal_cdf(hi, mu, sigma) - rv.normal_cdf(lo, mu, sigma)
def normal_probability_above(lo, mu=0, sigma=1):
    return 1 - rv.normal_cdf(lo, mu, sigma)
def normal_lower_bound(probability, mu=0, sigma=1):
    """ returns the z for which P(Z >= z) = probability """
    return rv.inverse_normal_cdf(1 - probability, mu, sigma)
def normal_probability_between(lo, hi, mu=0, sigma=1):
    return rv.normal_cdf(hi, mu, sigma) - rv.normal_cdf(lo, mu, sigma)
def normal_probability_above(lo, mu=0, sigma=1):
    return 1 - rv.normal_cdf(lo, mu, sigma)