a,r,g : VAR [nat->int]
p : VAR [nat->[nat->int]]
relseq: VAR [nat->RealOrder]
n : VAR [nat->nat]
d,i,j,k : VAR nat
m: VAR posnat %m : VAR posnat
x,y,c,b : VAR real
babove,bbelow,bbelow2,babove2: VAR bool
RelF6,TQRow: VAR [nat->subrange(0,5)]
% Next is a function that takes a system, possibly involving only inequalities and not equalities, % and converts it to a system(s) with at least one equality.
strictify(RelF6)(i): subrange(0,5) = IF RelF6(i)=4THEN1ELSIF RelF6(i)=5THEN2ELSE RelF6(i) ENDIF
first_eq(RelF6,k): RECURSIVE {i | (i>k IMPLIESFORALL (j:upto(k)): RelF6(j)>0) AND
(i<=k IMPLIES RelF6(i)=0ANDFORALL (j): j<i IMPLIES RelF6(j)>0)} = IF k=0THEN (IF RelF6(0)=0THEN0ELSE1ENDIF) ELSELET last = first_eq(RelF6,k-1) IN IF last>k-1THEN (IF RelF6(k)=0THEN k ELSE k+1ENDIF) ELSE last ENDIF ENDIFMEASURE k
poly_deriv_integer: LEMMA
rational_pred(poly_deriv(a)(d)) AND
integer_pred(poly_deriv(a)(d))
compute_solvable(k,p,(n|FORALL (j:upto(k)): p(j)(n(j))/=0AND n(j)>0),RelF6): bool = LET newp=greatify_poly_rel(p,RelF6),
newRel=greatify_rel(RelF6) IN IF k=0THEN compute_solvable_single(RelF6(0),p(0),n(0)) ELSIF (EXISTS (i:upto(k)): newRel(i)=0) THEN LET fe = first_eq(newRel,k) IN
sturm_tarski_faster(k-1,newp(fe),n(fe),
(LAMBDA (i): IF i<fe THEN newp(i) ELSE newp(i+1) ENDIF),
(LAMBDA (i): IF i<fe THEN n(i) ELSE n(i+1) ENDIF),
(LAMBDA (i): IF i<fe THEN newRel(i) ELSE newRel(i+1) ENDIF))/=0 ELSE LET Qprodlist = prod_polynomials_list(newp,n,LAMBDA i: 1,k),
Qdeg = length(Qprodlist)-1,
Qprod = (LAMBDA (i): IF i<length(Qprodlist) THEN nth(Qprodlist,i) ELSE0ENDIF) IN
(Qdeg>0AND sturm_tarski_faster(k,Qprod,Qdeg,newp,n,newRel)/=0) OR
(Qdeg>=2AND
((FORALL (j:upto(k)): rel5(newRel(j))(newp(j)(n(j)),0)) OR
(FORALL (j:upto(k)): (odd?(n(j)) IMPLIES rel5(newRel(j))(-newp(j)(n(j)),0)) AND
(even?(n(j)) IMPLIES rel5(newRel(j))(newp(j)(n(j)),0))) OR
sturm_tarski_faster(k,poly_deriv(Qprod),Qdeg-1,newp,n,newRel)/=0)) ENDIF
tarski(k,pq,(n|FORALL (j:upto(k)): pq(j)(n(j))/=0AND n(j)>0),RelF6): bool = LET pi = (LAMBDA (j): rat_poly_to_int(pq(j),n(j))),
pl = poly_system_list(k,pi,n),
p = (LAMBDA (i): LAMBDA (j): IF i<=k AND j<=n(i) THEN nth[int](nth[list[int]](pl,i),j) ELSE0ENDIF) IN compute_solvable(k,p,n,RelF6)
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.