(def-theorem convergence-test-for-complete-spaces
"complete
implies
forall(f:[zz,pp],
forsome(s:[zz,rr],k:zz,
summable%nonnegative(s)
and
forall(j:zz,k<=j implies dist(f(j),f(j+1))<=s(j)))
implies
#(lim(f)))"
(proof
(
(unfold-single-defined-constant (0) complete)
direct-and-antecedent-inference-strategy
(backchain "forall(s:[zz,pp],cauchy(s) implies #(lim(s)));")
(unfold-single-defined-constant (0) cauchy)
direct-and-antecedent-inference-strategy
(cut-with-single-formula "forsome(p:zz, forall(j,j_1:zz, p<=j and j<=j_1 implies sum(j,j_1,s)<=eps))")
(instantiate-existential ("max(k,p)"))
(apply-macete-with-minor-premises transitivity-of-<=)
(instantiate-existential ("sum(max(k,p),q_$0-1,lambda(j:zz,dist(f(j),f(j+1))))"))
(force-substitution "q_$0" "q_$0-1+1" (0))
(apply-macete-with-minor-premises generalized-triangle-inequality)
direct-and-antecedent-inference-strategy
simplify
(cut-with-single-formula "dist(f(j),f(j+1))<=s(j)")
(backchain "with(s:[zz,rr],f:[zz,pp],k:zz,
forall(j:zz,k<=j implies dist(f(j),f(j+1))<=s(j)));")
(apply-macete-with-minor-premises transitivity-of-<=)
(instantiate-existential ("max(k,p)"))
(apply-macete-with-minor-premises maximum-1st-arg)
simplify
(apply-macete-with-minor-premises transitivity-of-<=)
(instantiate-existential ("sum(max(k,p),q_$0-1,s)"))
(apply-macete-with-minor-premises monotonicity-for-sum)
direct-and-antecedent-inference-strategy
beta-reduce-repeatedly
(backchain "with(s:[zz,rr],f:[zz,pp],k:zz,
forall(j:zz,k<=j implies dist(f(j),f(j+1))<=s(j)));")
(cut-with-single-formula "k<=max(k,p)")
simplify
(apply-macete-with-minor-premises maximum-1st-arg)
(backchain "with(eps:rr,s:[zz,rr],p:zz,
forall(j,j_1:zz,
p<=j and j<=j_1 implies sum(j,j_1,s)<=eps));")
(apply-macete-with-minor-premises maximum-2nd-arg)
(cut-with-single-formula "sum(max(k,p),[-1]+q_$0,s)<=eps")
(backchain "with(eps:rr,s:[zz,rr],p:zz,
forall(j,j_1:zz,
p<=j and j<=j_1 implies sum(j,j_1,s)<=eps));")
(apply-macete-with-minor-premises maximum-2nd-arg)
simplify
(apply-macete-with-minor-premises sum-definedness)
beta-reduce-repeatedly
direct-and-antecedent-inference-strategy
(cut-with-single-formula "dist(f(k_$0),f(1+k_$0))<=s(k_$0)")
(apply-macete-with-minor-premises commutative-law-for-addition)
(backchain "with(s:[zz,rr],f:[zz,pp],k:zz,
forall(j:zz,k<=j implies dist(f(j),f(j+1))<=s(j)));")
(cut-with-single-formula "k<=max(k,p)")
simplify
(apply-macete-with-minor-premises maximum-1st-arg)
direct-and-antecedent-inference-strategy
(apply-macete-with-minor-premises small%tails%of%summable%nonnegative%sequence)
direct-and-antecedent-inference-strategy
)
)
(usages transportable-macete)
(theory metric-spaces))
(def-theorem geometric-series-formula
"forall(a,r:rr,p,q:zz,
0<=p and p<=q and not(r=0) and not(r=1)
implies
sum(p,q,lambda(j:zz,r^j*a))=a*r^p/(1-r)*(1-r^(q-p+1)))"
lemma
(theory h-o-real-arithmetic)
(proof
(
(apply-macete-with-minor-premises fractional-expression-manipulation)
(induction integer-inductor ("q"))
)))
(def-theorem geometric-series-upper-estimate-lemma
"forall(a,r:rr,p,q:zz,
1<=p and p<=q and 0<r and r<1 and 0<=a
implies
a*r^p/(1-r)*(1-r^(q-p+1)) <= a*r^p/(1-r))"
lemma
(theory h-o-real-arithmetic)
(proof
(
(apply-macete-with-minor-premises fractional-expression-manipulation)
simplify
(apply-macete-with-minor-premises positivity-for-products)
direct-and-antecedent-inference-strategy
(force-substitution "0<=r^(1+q)" "0<r^(1+q)" (0))
(apply-macete-with-minor-premises positivity-for-r^n)
simplify
)))
(def-theorem geometric-series-upper-estimate
"forall(a,r:rr,p,q:zz,
1<=p and p<=q and 0<r and r<1 and 0<=a
implies
sum(p,q,lambda(j:zz,r^j*a))<=a*r^p/(1-r))"
(theory h-o-real-arithmetic)
(proof
(
(apply-macete-with-minor-premises geometric-series-formula)
(apply-macete-with-minor-premises geometric-series-upper-estimate-lemma)
)))
(def-theorem geometric-series-is-summable%nonnegative
"forall(a,r:rr,p,q:zz, 0<r and r<1 and 0<=a
implies
summable%nonnegative(lambda(j:zz,r^j*a)))"
(proof
(
(unfold-single-defined-constant (0) summable%nonnegative)
direct-and-antecedent-inference-strategy
(instantiate-existential ("1"))
(apply-macete-with-minor-premises positivity-for-products)
(cut-with-single-formula "0<r^n")
simplify
(apply-macete-with-minor-premises positivity-for-r^n)
(apply-macete-with-minor-premises tr%prec%sup-defined)
direct-and-antecedent-inference-strategy
(apply-macete-with-minor-premises tr%non-empty-range)
beta-reduce-repeatedly
(instantiate-existential ("1"))
(apply-macete-with-minor-premises sum-definedness)
beta-reduce-repeatedly
simplify
(instantiate-existential ("a*r^1/(1-r)"))
(unfold-single-defined-constant (0) majorizes)
(apply-macete-with-minor-premises indicator-facts-macete)
beta-reduce-repeatedly
direct-and-antecedent-inference-strategy
(backchain "with(a,r:rr,x_$1:zz,x:rr,x=sum(1,x_$1,lambda(j_$0:zz,r^j_$0*a)));")
(case-split ("1<=x_$1"))
(apply-macete-with-minor-premises geometric-series-upper-estimate)
direct-and-antecedent-inference-strategy
simplify
(unfold-single-defined-constant (0) sum)
simplify
(apply-macete-with-minor-premises fractional-expression-manipulation)
simplify
))
(theory h-o-real-arithmetic))