from proveit import Etcetera from proveit.logic import Forall, InSet, NotEquals, Equals from proveit.number import Sub, Naturals, NaturalsPos, Integers, Reals, Complexes, Add, Neg, GreaterThan, GreaterThanEquals from proveit.common import a, b, w, x, y, z, xEtc, yEtc, vEtc, wEtc, zEtc, yMulti from proveit.number.common import zero, one from proveit import beginTheorems, endTheorems beginTheorems(locals()) subtractIntClosure = Forall([a, b], InSet(Sub(a, b), Integers), domain=Integers) subtractIntClosure subtractClosureNats = Forall([a, b], InSet(Sub(a, b), Naturals), domain=Integers, conditions=[GreaterThanEquals(a, b)]) subtractClosureNats subtractClosureNatsPos = Forall([a, b], InSet(Sub(a, b), NaturalsPos), domain=Integers, conditions=[GreaterThan(a, b)]) subtractClosureNatsPos subtractComplexClosure = Forall([a, b], InSet(Sub(a, b), Complexes), domain=Complexes) subtractComplexClosure subtractRealClosure = Forall([a, b], InSet(Sub(a, b), Reals), domain=Reals) subtractRealClosure subtractOneInNats = Forall(a, InSet(Sub(a, one), Naturals), domain=NaturalsPos) subtractOneInNats diffNotEqZero = Forall((a, b), NotEquals(Sub(a, b), zero), domain=Complexes, conditions=[NotEquals(a, b)]) diffNotEqZero subtractAsAddNeg = Forall([x, y], Equals(Sub(x, y),
beginTheorems(locals()) minRealClosure = Forall((a, b), InSet(Min(a, b), Reals), domain=Reals) minRealClosure minRealPosClosure = Forall((a, b), InSet(Min(a, b), RealsPos), domain=RealsPos) minRealPosClosure maxRealClosure = Forall((a, b), InSet(Max(a, b), Reals), domain=Reals) maxRealClosure maxRealPosClosure = Forall((a, b), InSet(Max(a, b), RealsPos), domain=RealsPos) maxRealPosClosure relaxGreaterThan = Forall([a,b], GreaterThanEquals(a,b), domain = Reals, conditions = GreaterThan(a,b)) relaxGreaterThan relaxLessThan = Forall([a,b], LessThanEquals(a,b), domain = Reals, conditions = LessThan(a,b)) relaxLessThan lessThanInBools = Forall([a, b], InSet(LessThan(a, b), Booleans), domain=Reals) lessThanInBools lessThanEqualsInBools = Forall([a, b], InSet(LessThanEquals(a, b), Booleans), domain=Reals) lessThanEqualsInBools