polynomial_div_linear_power_degree: LEMMA FORALL (a,b:[nat->real],n,m,k:nat):
(FORALL (x): polynomial(a,n)(x) = (x-y)^k*polynomial(b,m)(x)) AND
a(n)/=0AND b(m)/=0 IMPLIES
(a(n)=b(m) AND n=m+k)
poly_deriv_signs_neq_around_root_left: LEMMA n>0AND
x < y AND
polynomial(a,n)(y) = 0AND
(FORALL (z:real): x<=z AND z<=y AND
(polynomial(a,n)(z)=0OR polynomial(poly_deriv(a),n-1)(z)=0) IMPLIES z=y) IMPLIES sign_ext(polynomial(a,n)(x)) = -sign_ext(polynomial(poly_deriv(a),n-1)(x))
poly_deriv_signs_neq_around_root_right: LEMMA n>0AND
x > y AND
polynomial(a,n)(y) = 0AND
(FORALL (z:real): y<=z AND z<=x AND
(polynomial(a,n)(z)=0OR polynomial(poly_deriv(a),n-1)(z)=0) IMPLIES z=y) IMPLIES sign_ext(polynomial(a,n)(x)) = sign_ext(polynomial(poly_deriv(a),n-1)(x))
% Every polynomial is divisible by a maximal power (x-y)^m
max_linear_div_power?(a,n,y)(m:posnat): bool = EXISTS (b,q:[nat->real]): m<=n AND
(FORALL (x): polynomial(a,n)(x)=(x-y)^m*polynomial(b,n-m)(x)) AND
polynomial(b,n-m)(y)/=0AND
(FORALL (x): polynomial(poly_deriv(a),n-1)(x) = (x-y)^(m-1)*polynomial(q,n-m)(x)) AND
polynomial(q,n-m)(y)/=0
max_linear_div_power_sign_change: LEMMAFORALL (m:posnat):
x < y AND y < z AND
(FORALL (r:real): x<= r AND r<= z AND polynomial(a,n)(r) = 0 IMPLIES r = y) AND
max_linear_div_power?(a,n,y)(m) IMPLIES LET sigx = sign_ext(polynomial(a,n)(x)), sigz = sign_ext(polynomial(a,n)(z)) IN
sigx/=0AND sigz/=0AND
((even?(m) AND (NOT odd?(m)) AND sigx = sigz AND sigx/=-sigz) OR
(odd?(m) AND (NOT even?(m)) AND sigx = -sigz AND sigx/=sigz))
poly_eq_except_on_finite_set: LEMMAFORALL (b:[nat->real]): FORALL (N:posnat): (EXISTS (rootseq:[below(N)->real]): FORALL (x): (FORALL (ib:below(N)): x/=rootseq(ib)) IMPLIES
polynomial(a,n)(x)=polynomial(b,m)(x)) IMPLIES ((FORALL (j:nat): j<=n AND j>min(n,m) IMPLIES a(j)=0) AND
(FORALL (j:nat): j<=m AND j>min(n,m) IMPLIES b(j)=0) AND
(FORALL (j:nat): j<=min(n,m) IMPLIES a(j) = b(j)) AND
polynomial(a,n) = polynomial(b,m))
max_div_linear_power_remainder_sign_swaps: LEMMA FORALL (p,q,h,r:[nat->real],pn,qn,hn,rn:nat,m,kp:posnat):
x<y AND y<z AND
(FORALL (xyz:real): polynomial(p,pn)(xyz)=
polynomial(q,qn)(xyz)*polynomial(h,hn)(xyz)
+polynomial(r,rn)(xyz)) AND
(FORALL (xyz:real): x<=xyz AND xyz<=z AND
(polynomial(p,pn)(xyz)=0OR polynomial(h,hn)(xyz)=0OR polynomial(r,rn)(xyz)=0) IMPLIES xyz = y) AND
max_linear_div_power?(p,pn,y)(m) AND
max_linear_div_power?(r,rn,y)(m) AND
max_linear_div_power?(h,hn,y)(kp) AND
kp>m IMPLIES
(sign_ext(polynomial(p,pn)(x))*sign_ext(polynomial(-r,rn)(x)) = -1AND
sign_ext(polynomial(p,pn)(z))*sign_ext(polynomial(-r,rn)(z)) = -1)
at_zero_remainder_sign_swaps: LEMMA FORALL (p,q,h,r:[nat->real],pn,qn,hn,rn:nat):
x<=y AND y<=z AND
(FORALL (xyz:real): polynomial(p,pn)(xyz)=
polynomial(q,qn)(xyz)*polynomial(h,hn)(xyz)
+polynomial(r,rn)(xyz)) AND
(FORALL (xyz:real): x<=xyz AND xyz<=z AND
(polynomial(p,pn)(xyz)=0OR polynomial(h,hn)(xyz)=0OR polynomial(r,rn)(xyz)=0) IMPLIES xyz = y) AND
polynomial(h,hn)(y)=0AND
polynomial(p,pn)(y)/=0AND
polynomial(r,rn)(y)/=0AND
polynomial(p,pn)(x)/=0AND
polynomial(r,rn)(x)/=0AND
polynomial(p,pn)(z)/=0AND
polynomial(r,rn)(z)/=0 IMPLIES
(sign_ext(polynomial(p,pn)(x))*sign_ext(polynomial(-r,rn)(x)) = -1AND
sign_ext(polynomial(p,pn)(z))*sign_ext(polynomial(-r,rn)(z)) = -1)
poly_coeff_bound(a,n): RECURSIVE {kr:posreal | FORALL (i:nat): i<=n IMPLIES abs(a(i))<kr} = IF n = 0THEN abs(a(0))+1 ELSE max(abs(a(n))+1,poly_coeff_bound(a,n-1)) ENDIFMEASURE n
poly_continuity_const(a,n,x,(epsil:posreal)): posreal = IF n = 0THEN1/2ELSE LET epcon = epsil/(poly_coeff_bound(a,n) *
(sigma(1,n,LAMBDA (i:nat): sigma(1,i,LAMBDA (j:nat): IF (j=0OR j>i) THEN0 ELSE C(i,j-1)*abs(x)^(j-1) ENDIF)) + 1)) IN min(epcon,1/2) ENDIF
poly_continuity_const_def: LEMMAFORALL (epsil:posreal): LET delt = poly_continuity_const(a,n,x,epsil) INFORALL (y:real): abs(x-y)<delt IMPLIES
abs(polynomial(a,n)(y)-polynomial(a,n)(x))<epsil
max_nonvanishing_deriv(a,n,x): RECURSIVE {lastn:nat | lastn <= n AND
((EXISTS (ii:upto(n)): a(ii)/=0) IMPLIES (polynomial(poly_n_deriv(a,n-lastn),lastn)(x)/=0AND FORALL (i:nat): i>lastn AND i<=n IMPLIES
polynomial(poly_n_deriv(a,n-i),i)(x)=0))} = IF n=0OR polynomial(a,n)(x)/=0THEN n ELSE max_nonvanishing_deriv(poly_deriv(a),n-1,x) ENDIF MEASURE n
poly_rootless_width(a,n,x,(nzb: bool | nzb IFF (EXISTS (i:upto(n)): a(i)/=0))): posreal = LET maxn = max_nonvanishing_deriv(a,n,x) INIF nzb THEN poly_continuity_const(poly_n_deriv(a,n-maxn),maxn,x,
abs(polynomial(poly_n_deriv(a,n-maxn),maxn)(x))) ELSE1ENDIF
poly_rootless_width_def: LEMMA
(EXISTS (i:upto(n)): a(i)/=0) IMPLIES LET epsil=poly_rootless_width(a,n,x,TRUE),
mnd =max_nonvanishing_deriv(a,n,x) INFORALL (y:real,j:nat): j<=n-mnd AND polynomial(poly_n_deriv(a,j),n-j)(y)=0AND abs(x-y)<epsil IMPLIES x=y
poly_roots_enumerated: LEMMA (EXISTS (i:upto(n)): a(i)/=0) IMPLIESEXISTS (M:nat,rootseq:[below(M)->real]):
(FORALL (i:below(M)): polynomial(a,n)(rootseq(i))=0) AND (FORALL (x:real): polynomial(a,n)(x)=0IMPLIES EXISTS (i:below(M)): x=rootseq(i)) AND injective?(rootseq)
Knuth_poly_pos_root_bound(a,(n|a(n)=1AND n>0)): {K:real| FORALL (x:real):
polynomial(a,n)(x)=0AND x>0IMPLIES x <= K} = LET maxKfun = (LAMBDA (k:nat): IF1<=k AND k<=n AND a(n-k)<0 THENLET aquot = -a(n-k),
log2j = least_pow_2_ge(aquot),
rootexp = floor(log2j/k)+1 IN2^rootexp ELSE -1ENDIF) IN2*max_rec(maxKfun,1,n)
Knuth_poly_root_bound(a,(n|a(n)/=0)): {K:nnreal| FORALL (x:real):
polynomial(a,n)(x)=0IMPLIES abs(x) <= K} = IF n=0THEN0 ELSE LET negsign = (LAMBDA (i:nat): IF even?(i) THEN1ELSE -1ENDIF),
nega = (LAMBDA (i:nat): negsign(i)*negsign(n)*a(i)/a(n)),
newa = (LAMBDA (i:nat): a(i)/a(n)),
negbound = Knuth_poly_pos_root_bound(nega,n),
posbound = Knuth_poly_pos_root_bound(newa,n) IN max(posbound,max(negbound,0)) ENDIF
Knuth_poly_root_strict_bound(a,(n|a(n)/=0)): {K:posreal| FORALL (x:real):
polynomial(a,n)(x)=0IMPLIES abs(x) < K} = LET Kprb = Knuth_poly_root_bound(a,n) IN IF Kprb=0THEN1 ELSIF polynomial(a,n)(Kprb)=0OR polynomial(a,n)(-Kprb)=0THEN1.01*Kprb ELSE Kprb ENDIF
poly_increasing_is_strict: LEMMAFORALL (xlb,yub:real):
xlb < yub AND n > 0AND a(n)/=0IMPLIES
((FORALL (c:real): xlb <= c AND c <= yub IMPLIES polynomial(poly_deriv(a),n-1)(c) >= 0) IFF
(FORALL (x,y:real): xlb <= x AND x<y AND y<=yub IMPLIES polynomial(a,n)(x) < polynomial(a,n)(y)))
poly_increasing_is_strict2: LEMMAFORALL (xlb,yub:real):
xlb < yub AND n > 0AND a(n)/=0IMPLIES
((FORALL (c:real): xlb <= c AND c <= yub IMPLIES polynomial(poly_deriv(a),n-1)(c) >= 0) IFF
(FORALL (x,y:real): xlb <= x AND x<y AND y<=yub IMPLIES polynomial(a,n)(x) <= polynomial(a,n)(y)))
poly_decreasing_is_strict: LEMMAFORALL (xlb,yub:real):
xlb < yub AND n > 0AND a(n)/=0IMPLIES
((FORALL (c:real): xlb <= c AND c <= yub IMPLIES polynomial(poly_deriv(a),n-1)(c) <= 0) IFF
(FORALL (x,y:real): xlb <= x AND x<y AND y<=yub IMPLIES polynomial(a,n)(x) > polynomial(a,n)(y)))
poly_decreasing_is_strict2: LEMMAFORALL (xlb,yub:real):
xlb < yub AND n > 0AND a(n)/=0IMPLIES
((FORALL (c:real): xlb <= c AND c <= yub IMPLIES polynomial(poly_deriv(a),n-1)(c) <= 0) IFF
(FORALL (x,y:real): xlb <= x AND x<y AND y<=yub IMPLIES polynomial(a,n)(x) >= polynomial(a,n)(y)))
poly_injective_monotone: LEMMAFORALL (xlb,yub:real):
xlb < yub AND n > 0AND a(n)/=0IMPLIES
((FORALL (x,y:real): xlb <= x AND x<y AND y<=yub IMPLIES polynomial(a,n)(x) /= polynomial(a,n)(y)) IFF
((FORALL (x,y:real): xlb <= x AND x<y AND y<=yub IMPLIES polynomial(a,n)(x) > polynomial(a,n)(y)) OR
(FORALL (x,y:real): xlb <= x AND x<y AND y<=yub IMPLIES polynomial(a,n)(x) < polynomial(a,n)(y))))
% Max root is like max_linear_div_power, but more robust.
root_degree(a,n)(y): RECURSIVE {m| m<=n AND (a(n)/=0IMPLIES
((EXISTS (b:[nat->real]): (FORALL (x): polynomial(a,n)(x)=(x-y)^m*polynomial(b,n-m)(x)) AND
polynomial(b,n-m)(y)/=0AND b(n-m)/=0) AND
(polynomial(a,n)(y)=0IMPLIES m>0) AND
((n>0AND m>0) IMPLIES (EXISTS (q:[nat->real]): (FORALL (x): polynomial(poly_deriv(a),n-1)(x) =
(x-y)^(m-1)*polynomial(q,n-m)(x)) AND
polynomial(q,n-m)(y)/=0))))} = IF polynomial(a,n)(y)/=0OR n=0THEN0 ELSE1+root_degree(poly_shift(LAMBDA (i:nat): poly_shift(a,n)(y)(i+1),n-1)(-y),n-1)(y) ENDIFMEASURE n
signs_swap_division: LEMMA FORALL (a,b,g,h:[nat->real],n,m,k,p:nat):
only_root_between?(a,n,x,y)(z) AND
only_root_between?(b,m,x,y)(z) AND
only_root_between?(h,p,x,y)(z) AND
(FORALL (r:real): polynomial(a,n)(r) =
polynomial(g,k)(r)*polynomial(b,m)(r)
+ polynomial(h,p)(r)) AND h(p)/=0AND
a(n)/=0AND b(m)/=0AND
root_degree(a,n)(z)=root_degree(h,p)(z) AND
root_degree(b,m)(z)>=root_degree(h,p)(z) IMPLIES
((sign_ext(polynomial(a,n)(x))*sign_ext(polynomial(h,p)(x))=1AND
sign_ext(polynomial(a,n)(y))*sign_ext(polynomial(h,p)(y))=1) OR
(EXISTS (sig:Sign): (FORALL (abh:[nat->real],kz:nat):
((abh=a AND kz=n) OR (abh=b AND kz=m) OR (abh=h AND kz=p)) IMPLIES
sign_ext(polynomial(abh,kz)(x)) = sig*sign_ext(polynomial(abh,kz)(y)))))
END more_polynomial_props
Messung V0.5 in Prozent
¤ Dauer der Verarbeitung: 0.11 Sekunden
(vorverarbeitet am 2026-06-09)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.