def prove(Eq): a = Symbol.a(real=True) b = Symbol.b(real=True, domain=Interval(a, oo, left_open=True)) assert b > a assert b - a > 0 f = Function('f') given = Equality.continuity(f, a, b) z = given.lhs.args[1] Eq << apply(given) m = Symbol.m(definition=MIN(f(z), (z, a, b))) M = Symbol.M(definition=MAX(f(z), (z, a, b))) Eq.min, Eq.max = m.equality_defined(), M.equality_defined() Eq << axiom.calculus.integral.intermediate_value_theorem.apply(given) Eq.intermediate_value = Eq[-1].this.limits[0][2].subs( Eq.max.reversed).this.limits[0][1].subs(Eq.min.reversed) Eq << m.definition.assertion().integral( (z, a, b)).subs(Eq.min.reversed) / (b - a) Eq << M.definition.assertion().integral( (z, a, b)).subs(Eq.max.reversed) / (b - a) Eq << (Eq[-1] & Eq[-2]) # Eq << (Eq[-1].reversed & Eq[-2]) # Eq << (Eq[-1] & Eq[-2].reversed) # Eq << (Eq[-1].reversed & Eq[-2].reversed) # Eq << (Eq[-2] & Eq[-1]) # Eq << (Eq[-2].reversed & Eq[-1]) # Eq << (Eq[-2] & Eq[-1].reversed) # Eq << (Eq[-2].reversed & Eq[-1].reversed) Eq << Eq.intermediate_value.subs(Eq.intermediate_value.rhs, Eq[-1].lhs) Eq << (Eq[-1] & Eq[-2]) Eq << Eq[-1].split() Eq << Eq[-1] * (b - a) Eq << Eq[-1].this.function.rhs.ratsimp().reversed
def prove(Eq): a = Symbol.a(real=True) b = Symbol.b(real=True, domain=Interval(a, oo, left_open=True)) Eq << apply(Equality.continuity(Function('f'), a, b))