(def-theorem weak-positivity-for-r^n
"forall(x:rr, n:zz, 1<=n and 0<=x implies 0<=x^n)"
(theory h-o-real-arithmetic)
(proof
(
direct-and-antecedent-inference-strategy
(case-split ("x=0"))
simplify
(cut-with-single-formula "0<x^n")
simplify
(apply-macete-with-minor-premises positivity-for-r^n)
simplify
direct-and-antecedent-inference-strategy
)))
(def-theorem positive-rational-characterization
"forall(s:qq, 0<s implies forsome(m,n:zz, 1<=m and 1<=n and s=m/n))"
(theory h-o-real-arithmetic)
(proof
(
direct-and-antecedent-inference-strategy
(cut-with-single-formula "forsome(m,n:zz, s=m/n)")
(move-to-sibling 1)
(apply-macete-with-minor-premises zz-quotient-field)
(antecedent-inference "with(p:prop,forsome(m,n:zz,p));")
(cut-with-single-formula "0=m or 0<m or m<0")
(move-to-sibling 1)
simplify
(antecedent-inference "with(p:prop,p or p or p);")
(simplify-antecedent "with(n,m:zz,s:qq,s=m/n);")
(instantiate-existential ("m" "n"))
simplify
(contrapose "with(r:rr,s:qq,s=r);")
(cut-with-single-formula "n<0 or n=0")
(antecedent-inference "with(p:prop,p or p);")
(apply-macete-with-minor-premises fractional-expression-manipulation)
(cut-with-single-formula "0<(-s)*n")
simplify
simplify
simplify
simplify
(instantiate-existential ("-m" "-n"))
(incorporate-antecedent "with(r:rr,s:qq,s=r);")
simplify
(contrapose "with(r:rr,s:qq,s=r);")
(cut-with-single-formula "n=0 or 0<n")
(move-to-sibling 1)
simplify
(antecedent-inference "with(p:prop,p or p);")
simplify
(apply-macete-with-minor-premises fractional-expression-manipulation)
(cut-with-single-formula "0<s*n")
simplify
simplify
(incorporate-antecedent "with(r:rr,s:qq,s=r);")
simplify
)))
(def-theorem rational-power-lemma-1
"forall(x:rr, m,n,p:zz, 1<=n and 1<=m and 1<=p and 0<=x
implies
nth%root(p*n,x^(p*m))= nth%root(n,x^m))"
(theory h-o-real-arithmetic)
(proof
(
direct-and-antecedent-inference-strategy
(apply-macete-with-minor-premises iota-free-characterization-of-nth%root)
direct-and-antecedent-inference-strategy
(apply-macete-with-minor-premises nth%root-non-negative)
direct-and-antecedent-inference-strategy
(apply-macete-with-minor-premises weak-positivity-for-r^n)
direct-and-antecedent-inference-strategy
(cut-with-single-formula "forsome(s:rr, nth%root(n,x^m)=s)")
(antecedent-inference "with(p:prop,forsome(s:rr,p));")
(backchain "with(s,r:rr,r=s);")
(incorporate-antecedent "with(s,r:rr,r=s);")
(apply-macete-with-minor-premises iota-free-characterization-of-nth%root)
direct-and-antecedent-inference-strategy
(cut-with-single-formula "(s^n)^p=(x^m)^p")
(move-to-sibling 1)
(backchain "with(r:rr,r=r);")
simplify
simplify
(instantiate-existential ("nth%root(n,x^m)"))
(force-substitution "1" "1*1" (0))
(apply-macete-with-minor-premises monotone-product-lemma)
simplify
simplify
)))
(def-theorem rational-power-lemma-2
"forall(x:rr, m,n,p,q:zz, 1<=n and 1<=m and 1<=p and 1<=q and 0<=x and m/n=p/q
implies
nth%root(n,x^m)=nth%root(q,x^p))"
(theory h-o-real-arithmetic)
(proof
(
(apply-macete-with-minor-premises fractional-expression-manipulation)
direct-and-antecedent-inference-strategy
(cut-with-single-formula "nth%root(n,x^m)=nth%root(q*n,x^(q*m)) and nth%root(n*q,x^(n*p))=nth%root(q,x^p)")
(move-to-sibling 1)
(apply-macete-with-minor-premises rational-power-lemma-1)
simplify
(apply-macete-with-minor-premises nth%root%existence)
(apply-macete-with-minor-premises weak-positivity-for-r^n)
direct-and-antecedent-inference-strategy
(backchain "with(p:prop,p and p);")
(antecedent-inference "with(p:prop,p and p);")
(force-substitution "q*m" "n*p" (0))
(move-to-sibling 1)
simplify
(force-substitution "q*n" "n*q" (0))
simplify)))
(def-theorem rational-power-lemma-3
"forall(x:rr, m,n,p:zz, 1<=n and 1<=m and 0<=x
implies
nth%root(n,x^m)= nth%root(n,x)^m)"
(theory h-o-real-arithmetic)
(proof
(
direct-and-antecedent-inference-strategy
(apply-macete-with-minor-premises iota-free-characterization-of-nth%root)
(apply-macete-with-minor-premises weak-positivity-for-r^n)
direct-and-antecedent-inference-strategy
(apply-macete-with-minor-premises nth%root-non-negative)
simplify
(force-substitution "(nth%root(n,x)^m)^n" "(nth%root(n,x)^n)^m" (0))
(apply-macete-with-minor-premises nth%root-power)
simplify
simplify
)))
(def-constant posrat%exp
"lambda(x:rr, s:qq,
if(s<=0 or x<0,?rr,
iota(r:rr, forall(m,n:zz,1<=m and 1<=n and s=m/n implies r=nth%root(n,x^m)))))"
(theory h-o-real-arithmetic))
(def-theorem posrat%exp-characterization
"forall(x:rr, m,n:zz,1<=m and 1<=n and 0<=x implies posrat%exp(x,m/n)=nth%root(n,x^m))"
(theory h-o-real-arithmetic)
(proof
(
(unfold-single-defined-constant (0) posrat%exp)
(raise-conditional (0))
direct-and-antecedent-inference-strategy
(contrapose "with(r:rr,r<=0);")
(apply-macete-with-minor-premises fractional-expression-manipulation)
simplify
(simplify-antecedent "with(x:rr,x<0);")
(apply-macete-with-minor-premises eliminate-iota-macete)
direct-and-antecedent-inference-strategy
(apply-macete-with-minor-premises rational-power-lemma-2)
direct-and-antecedent-inference-strategy
simplify
(apply-macete-with-minor-premises nth%root%existence)
(apply-macete-with-minor-premises weak-positivity-for-r^n)
direct-and-antecedent-inference-strategy
)))
(def-theorem posrat%exp-definedness
"forall(x:rr, s:qq,0<s and 0<=x implies #(posrat%exp(x,s)))"
(theory h-o-real-arithmetic)
(proof
(
direct-and-antecedent-inference-strategy
(cut-with-single-formula "forsome(m,n:zz, s=m/n and 1<=m and 1<=n)")
(antecedent-inference "with(p:prop,forsome(m,n:zz,p));")
(backchain "with(p:prop,p and p and p);")
(apply-macete-with-minor-premises posrat%exp-characterization)
(apply-macete-with-minor-premises nth%root%existence)
(apply-macete-with-minor-premises weak-positivity-for-r^n)
direct-and-antecedent-inference-strategy
(instantiate-theorem positive-rational-characterization ("s"))
auto-instantiate-existential
)))
(def-theorem posrat%exp-nonnegative
"forall(x:rr, s:qq, 0<s and 0<=x implies 0<=posrat%exp(x,s))"
(theory h-o-real-arithmetic)
(proof
(
direct-and-antecedent-inference-strategy
(cut-with-single-formula "forsome(m,n:zz, 1<=m and 1<=n and s=m/n) ")
(move-to-sibling 1)
(apply-macete-with-minor-premises positive-rational-characterization)
(antecedent-inference "with(p:prop,forsome(m,n:zz,p));")
(backchain "with(p:prop,p and p and p);")
(apply-macete-with-minor-premises posrat%exp-characterization)
(apply-macete-with-minor-premises nth%root-non-negative)
(apply-macete-with-minor-premises weak-positivity-for-r^n)
simplify
)))
(def-theorem posrat%exp-additive-property
"forall(x:rr, s,t:qq,0<s and 0<t and 0<=x
implies
posrat%exp(x,s+t)=posrat%exp(x,s)*posrat%exp(x,t))"
(theory h-o-real-arithmetic)
(proof
(
direct-and-antecedent-inference-strategy
(cut-with-single-formula
"forsome(m,n:zz, 1<=m and 1<=n and s=m/n) and forsome(m,n:zz, 1<=m and 1<=n and t=m/n)")
(move-to-sibling 1)
(apply-macete-with-minor-premises positive-rational-characterization)
direct-and-antecedent-inference-strategy
(antecedent-inference-strategy (0))
(backchain-repeatedly ("with(n_$0,m_$0:zz,s:qq,s=m_$0/n_$0);"))
(backchain-repeatedly ("with(n,m:zz,t:qq,t=m/n);"))
(apply-macete-with-minor-premises fractional-expression-manipulation)
(apply-macete-with-minor-premises posrat%exp-characterization)
(move-to-sibling 1)
(force-substitution "1" "1*1" (0))
(apply-macete-with-minor-premises monotone-product-lemma)
simplify
simplify
(move-to-sibling 2)
(cut-with-single-formula "1<=m_$0*n and 0<=n_$0*m")
simplify
(force-substitution "1" "1*1" (0))
(apply-macete-with-minor-premises monotone-product-lemma)
simplify
(force-substitution "x^(n_$0*m+n*m_$0)" "x^(n_$0*m)*x^(n*m_$0)" (0))
(move-to-sibling 1)
simplify
(apply-macete-with-minor-premises nth-root-is-multiplicative)
(force-substitution "n*n_$0" "n_$0*n" (0))
(move-to-sibling 1)
simplify
(apply-macete-with-minor-premises rational-power-lemma-1)
simplify
(apply-macete-with-minor-premises nth%root%existence)
(apply-macete-with-minor-premises weak-positivity-for-r^n)
simplify
(apply-macete-with-minor-premises weak-positivity-for-r^n)
simplify
(apply-macete-with-minor-premises weak-positivity-for-r^n)
simplify
)))
(def-theorem posrat%exp-multiplicative-property
"forall(x,y:rr, s,t:qq,0<s and 0<=x and 0<=y
implies
posrat%exp(x*y,s)=posrat%exp(x,s)*posrat%exp(y,s))"
(theory h-o-real-arithmetic)
(proof
(
direct-and-antecedent-inference-strategy
(cut-with-single-formula "forsome(m,n:zz, 1<=m and 1<=n and s=m/n) ")
(move-to-sibling 1)
(apply-macete-with-minor-premises positive-rational-characterization)
(antecedent-inference-strategy (0))
(backchain-repeatedly ("with(n_$0,m_$0:zz,s:qq,s=m_$0/n_$0);"))
(apply-macete-with-minor-premises posrat%exp-characterization)
simplify
(apply-macete-with-minor-premises nth-root-is-multiplicative)
simplify
(apply-macete-with-minor-premises nth%root%existence)
(apply-macete-with-minor-premises weak-positivity-for-r^n)
direct-and-antecedent-inference-strategy
(apply-macete-with-minor-premises weak-positivity-for-r^n)
direct-and-antecedent-inference-strategy
(apply-macete-with-minor-premises weak-positivity-for-r^n)
(apply-macete-with-minor-premises positivity-for-products)
direct-and-antecedent-inference-strategy
)))
(def-theorem posrat%exp-iterated-exponent-property
"forall(x,y:rr, s,t:qq,0<s and 0<t and 0<=x
implies
posrat%exp(x,s*t)=posrat%exp(posrat%exp(x,s),t))"
(theory h-o-real-arithmetic)
(proof
(
direct-and-antecedent-inference-strategy
(cut-with-single-formula
"forsome(m,n:zz, 1<=m and 1<=n and s=m/n) and forsome(m,n:zz, 1<=m and 1<=n and t=m/n)")
(move-to-sibling 1)
(apply-macete-with-minor-premises positive-rational-characterization)
direct-and-antecedent-inference-strategy
(antecedent-inference-strategy (0))
(backchain-repeatedly ("with(n_$0,m_$0:zz,s:qq,s=m_$0/n_$0);"))
(backchain-repeatedly ("with(n,m:zz,t:qq,t=m/n);"))
(apply-macete-with-minor-premises fractional-expression-manipulation)
(apply-macete-with-minor-premises posrat%exp-characterization)
(move-to-sibling 1)
(apply-macete-with-minor-premises posrat%exp-nonnegative)
direct-and-antecedent-inference-strategy
(move-to-sibling 2)
(force-substitution "1" "1*1" (0))
(apply-macete-with-minor-premises monotone-product-lemma)
simplify
simplify
(apply-macete-with-minor-premises posrat%exp-characterization)
(apply-macete-with-minor-premises iterated-nth%root)
(move-to-sibling 1)
(apply-macete-with-minor-premises weak-positivity-for-r^n)
(force-substitution "1" "1*1" (0))
(apply-macete-with-minor-premises monotone-product-lemma)
simplify
(apply-macete-with-minor-premises rational-power-lemma-3)
(move-to-sibling 1)
(apply-macete-with-minor-premises nth%root-non-negative)
(apply-macete-with-minor-premises weak-positivity-for-r^n)
simplify
(apply-macete-with-minor-premises rational-power-lemma-3)
(move-to-sibling 1)
(apply-macete-with-minor-premises nth%root-non-negative)
direct-and-antecedent-inference-strategy
(apply-macete-with-minor-premises rational-power-lemma-3)
simplify
(force-substitution "1" "1*1" (0))
)))