Computing the real solutions of polynomial systems with the RegularChains library in Maple Changbo Chen1 , James H. Davenport2, Francois Lemaire3, Marc Moreno Maza1, Bican Xia4, Rong Xiao1, Yuzhen Xie1 1University of Western Ontario, Canada; 2University of Bath, UK; 3Universit\303\251 de Lille, France; 4Peking University, China
<Text-field style="Heading 1" layout="Heading 1"> 0. Overview</Text-field> The RegularChains library offers a variety of tools to compute the real solutions of polynomial systems. These tools include isolating/counting the real solutions of zero-dimensional systems, describing real solutions of positive dimensional systems, classifing the number of real roots of parametric systems, finding sample points (thus determining emptiness) of semi-algebraic sets, performing set theoretical operations on semi-algebraic sets as well as computing cylindrical algebraic decompositions. The theory and algorithms underlying these tools are described in [10, 11, 5, 1, 3, 4]. Most of the commands implementing these tools are part of the SemiAlgebraicSetTools module while the others can be found in the ParametricSystemTools module or at the top level of the RegularChains library.
<Text-field style="Heading 1" layout="Heading 1"> <Font size="20">1. A tour of the main commands</Font></Text-field> LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYnLUkjbWlHRiQ2JlEkTGV0RicvJSVzaXplR1EjMTRGJy8lJ2l0YWxpY0dRJXRydWVGJy8lLG1hdGh2YXJpYW50R1EnaXRhbGljRictSSNtb0dGJDYuUSJ+RidGLy9GNlEnbm9ybWFsRicvJSZmZW5jZUdRJmZhbHNlRicvJSpzZXBhcmF0b3JHRkAvJSlzdHJldGNoeUdGQC8lKnN5bW1ldHJpY0dGQC8lKGxhcmdlb3BHRkAvJS5tb3ZhYmxlbGltaXRzR0ZALyUnYWNjZW50R0ZALyUnbHNwYWNlR1EmMC4wZW1GJy8lJ3JzcGFjZUdGTy1GLDYmUSJTRidGL0YyRjVGL0Y8 be the semi-algebraic system that the real solving commands operating on. In most situations, it is encoded by 4 lists of polynomials, respectively for equations, non-negative inequalities, positive inequalities, and inequations.
<Text-field style="Heading 2" layout="Heading 2">1.1 <Hyperlink linktarget="Help:RealRootIsolate" hyperlink="true"><Font bold="true" style="Text" underline="true" foreground="[0,128,128]" size="16">RealRootIsolate</Font></Hyperlink><Font style="Text" size="16">. </Font><Font style="Text" encoding="UTF-8" size="14">It isolates/identifies separately all real solutions of a 0-dimensional semi-algebraic system, that is, a system with finitely many real solutions, by so-called boxes. In the the real space \342\204\235</Font><Font superscript="true" style="Text" size="14">n</Font><Font style="Text" encoding="UTF-8" size="14"> , a box is a Cartesian product of n bounded intervals of \342\204\235; the output type </Font><Font style="2D Output" size="14">box</Font><Font style="Text" size="14"> of RealRootIsolate permits one to get the numeric box with arbitrary precision, via various commands like </Font><Hyperlink linktarget="Help:BoxValues" hyperlink="true"><Font style="Text" underline="true" foreground="[0,128,128]" size="14">BoxValues</Font></Hyperlink><Font style="Text" size="14"> and </Font><Hyperlink linktarget="Help:RefineBox" hyperlink="true"><Font style="Text" underline="true" foreground="[0,128,128]" size="14">RefineBox</Font></Hyperlink><Font size="14">.</Font></Text-field> Isolate the real solutions of a simple system { x^2+y^2-1=0, x*y-1/3=0, x-y>0 }. R := PolynomialRing([y,x]): F := [x^2+y^2-1, x*y-1/3]: N := []: P := [x-y]: H := []: sols := RealRootIsolate(F, N, P, H, R); Show the isolating intervals. map(BoxValues, sols, R); Refine boxes to a given absolute precision. sols_abserr := map(RefineBox, sols, 1/2^10, R): map(BoxValues, sols_abserr, R); Refine boxes to a given relative precision. sols_rerr := map(RefineBox, sols, errtype='relative', 1/2^10, R): map(BoxValues, sols_rerr, R);
<Text-field style="Heading 2" layout="Heading 2">1.2 <Hyperlink linktarget="Help:RegularChains[RealTriangularize]" hyperlink="true"><Font bold="true" style="Text" underline="true" foreground="[0,128,128]" size="16">RealTriangularize</Font></Hyperlink><Font bold="false">. <Font size="14">It computes a list of regular semi-algebraic systems </Font></Font><Equation executable="false" style="2D Math" input-equation="" display="LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYqLUklbXN1YkdGJDYlLUkjbWlHRiQ2JlEiU0YnLyUlc2l6ZUdRIzE0RicvJSdpdGFsaWNHUSV0cnVlRicvJSxtYXRodmFyaWFudEdRJ2l0YWxpY0YnLUYjNiYtSSNtbkdGJDYlUSIxRidGMi9GOVEnbm9ybWFsRidGMkY1RjgvJS9zdWJzY3JpcHRzaGlmdEdRIjBGJy1JI21vR0YkNi5RIixGJ0YyRkEvJSZmZW5jZUdRJmZhbHNlRicvJSpzZXBhcmF0b3JHRjcvJSlzdHJldGNoeUdGTC8lKnN5bW1ldHJpY0dGTC8lKGxhcmdlb3BHRkwvJS5tb3ZhYmxlbGltaXRzR0ZMLyUnYWNjZW50R0ZMLyUnbHNwYWNlR1EmMC4wZW1GJy8lJ3JzcGFjZUdRLDAuMzMzMzMzM2VtRictRkc2LlEjLi5GJ0YyRkFGSi9GTkZMRk9GUUZTRlVGVy9GWlEsMC4yMjIyMjIyZW1GJy9GZ25GZW4tRkc2LlEiLkYnRjJGQUZKRlxvRk9GUUZTRlVGV0ZZRl9vRkYtRiw2JUYuLUYjNiYtRi82JlEiZUYnRjJGNUY4RjJGNUY4RkNGMkZB">LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYqLUklbXN1YkdGJDYlLUkjbWlHRiQ2JlEiU0YnLyUlc2l6ZUdRIzE0RicvJSdpdGFsaWNHUSV0cnVlRicvJSxtYXRodmFyaWFudEdRJ2l0YWxpY0YnLUYjNiYtSSNtbkdGJDYlUSIxRidGMi9GOVEnbm9ybWFsRidGMkY1RjgvJS9zdWJzY3JpcHRzaGlmdEdRIjBGJy1JI21vR0YkNi5RIixGJ0YyRkEvJSZmZW5jZUdRJmZhbHNlRicvJSpzZXBhcmF0b3JHRjcvJSlzdHJldGNoeUdGTC8lKnN5bW1ldHJpY0dGTC8lKGxhcmdlb3BHRkwvJS5tb3ZhYmxlbGltaXRzR0ZMLyUnYWNjZW50R0ZMLyUnbHNwYWNlR1EmMC4wZW1GJy8lJ3JzcGFjZUdRLDAuMzMzMzMzM2VtRictRkc2LlEjLi5GJ0YyRkFGSi9GTkZMRk9GUUZTRlVGVy9GWlEsMC4yMjIyMjIyZW1GJy9GZ25GZW4tRkc2LlEiLkYnRjJGQUZKRlxvRk9GUUZTRlVGV0ZZRl9vRkYtRiw2JUYuLUYjNiYtRi82JlEiZUYnRjJGNUY4RjJGNUY4RkNGMkZB</Equation><Font bold="false" size="14"> (called a full triangular decomposition of S) such that a point is a solution of </Font><Equation executable="false" style="2D Math" input-equation="" display="LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYlLUkjbWlHRiQ2JlEiU0YnLyUlc2l6ZUdRIzE0RicvJSdpdGFsaWNHUSV0cnVlRicvJSxtYXRodmFyaWFudEdRJ2l0YWxpY0YnRi8vRjZRJ25vcm1hbEYn">LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYlLUkjbWlHRiQ2JlEiU0YnLyUlc2l6ZUdRIzE0RicvJSdpdGFsaWNHUSV0cnVlRicvJSxtYXRodmFyaWFudEdRJ2l0YWxpY0YnRi8vRjZRJ25vcm1hbEYn</Equation><Font bold="false" size="14"> if and only if it is a solution of one of the systems </Font><Equation executable="false" style="2D Math" input-equation="" display="LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYqLUklbXN1YkdGJDYlLUkjbWlHRiQ2JlEiU0YnLyUlc2l6ZUdRIzE0RicvJSdpdGFsaWNHUSV0cnVlRicvJSxtYXRodmFyaWFudEdRJ2l0YWxpY0YnLUYjNiYtSSNtbkdGJDYlUSIxRidGMi9GOVEnbm9ybWFsRidGMkY1RjgvJS9zdWJzY3JpcHRzaGlmdEdRIjBGJy1JI21vR0YkNi5RIixGJ0YyRkEvJSZmZW5jZUdRJmZhbHNlRicvJSpzZXBhcmF0b3JHRjcvJSlzdHJldGNoeUdGTC8lKnN5bW1ldHJpY0dGTC8lKGxhcmdlb3BHRkwvJS5tb3ZhYmxlbGltaXRzR0ZMLyUnYWNjZW50R0ZMLyUnbHNwYWNlR1EmMC4wZW1GJy8lJ3JzcGFjZUdRLDAuMzMzMzMzM2VtRictRkc2LlEjLi5GJ0YyRkFGSi9GTkZMRk9GUUZTRlVGVy9GWlEsMC4yMjIyMjIyZW1GJy9GZ25GZW4tRkc2LlEiLkYnRjJGQUZKRlxvRk9GUUZTRlVGV0ZZRl9vRkYtRiw2JUYuLUYjNiYtRi82JlEiZUYnRjJGNUY4RjJGNUY4RkNGMkZB">LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYqLUklbXN1YkdGJDYlLUkjbWlHRiQ2JlEiU0YnLyUlc2l6ZUdRIzE0RicvJSdpdGFsaWNHUSV0cnVlRicvJSxtYXRodmFyaWFudEdRJ2l0YWxpY0YnLUYjNiYtSSNtbkdGJDYlUSIxRidGMi9GOVEnbm9ybWFsRidGMkY1RjgvJS9zdWJzY3JpcHRzaGlmdEdRIjBGJy1JI21vR0YkNi5RIixGJ0YyRkEvJSZmZW5jZUdRJmZhbHNlRicvJSpzZXBhcmF0b3JHRjcvJSlzdHJldGNoeUdGTC8lKnN5bW1ldHJpY0dGTC8lKGxhcmdlb3BHRkwvJS5tb3ZhYmxlbGltaXRzR0ZMLyUnYWNjZW50R0ZMLyUnbHNwYWNlR1EmMC4wZW1GJy8lJ3JzcGFjZUdRLDAuMzMzMzMzM2VtRictRkc2LlEjLi5GJ0YyRkFGSi9GTkZMRk9GUUZTRlVGVy9GWlEsMC4yMjIyMjIyZW1GJy9GZ25GZW4tRkc2LlEiLkYnRjJGQUZKRlxvRk9GUUZTRlVGV0ZZRl9vRkYtRiw2JUYuLUYjNiYtRi82JlEiZUYnRjJGNUY4RjJGNUY4RkNGMkZB</Equation><Font bold="false" size="14">. Each regular semi-algebraic system has a triangular shape and remarkable properties, and represented by type </Font><Font style="2D Output" size="14">regular_semi_algebraic_system</Font><Font bold="false" size="14"> in </Font><Hyperlink linktarget="Help:RegularChains" hyperlink="true"><Font style="Text" underline="true" foreground="[0,128,128]" size="14">RegularChains</Font></Hyperlink><Font bold="false" size="14">. </Font><Hyperlink linktarget="Help:LazyRealTriangularize" hyperlink="true"><Font bold="false" style="Heading 2" underline="true" foreground="[0,128,128]" size="14">LazyRealTriangularize</Font></Hyperlink><Font bold="false" size="14"> compute triangular decomposition of a "large" (thus partially) subset of S, leaving some lower dimensional components to be triangularized further if necessary; it allows the user to compute a full triangular decomposition of </Font><Equation executable="false" style="2D Math" input-equation="" display="LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYlLUkjbWlHRiQ2JlEiU0YnLyUlc2l6ZUdRIzE0RicvJSdpdGFsaWNHUSV0cnVlRicvJSxtYXRodmFyaWFudEdRJ2l0YWxpY0YnRi8vRjZRJ25vcm1hbEYn">LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYlLUkjbWlHRiQ2JlEiU0YnLyUlc2l6ZUdRIzE0RicvJSdpdGFsaWNHUSV0cnVlRicvJSxtYXRodmFyaWFudEdRJ2l0YWxpY0YnRi8vRjZRJ25vcm1hbEYn</Equation><Font bold="false" size="14"> in an interactive manner.</Font><Font size="14"> </Font></Text-field>
<Text-field style="Heading 3" italic="false" layout="Heading 3"><Font italic="false">RealTriangularize</Font></Text-field> Consider the generic equation of degree two. R := PolynomialRing([x, c, b, a]); sys := [a*x^2+b*x+c=0]; Compute a triangular decomposition of the 4-variable hypersurface it defines. dec := RealTriangularize(sys, R); Display(dec, R); Consider the record output format. RealTriangularize(sys, R, output=record); Next, we consider an example from Brown and McCallum's ISSAC paper. Consider the following question: when does LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYsLUkjbWlHRiQ2JlEicEYnLyUlc2l6ZUdRIzE0RicvJSdpdGFsaWNHUSV0cnVlRicvJSxtYXRodmFyaWFudEdRJ2l0YWxpY0YnLUkobWZlbmNlZEdGJDYlLUYjNiQtRiw2JlEiekYnRi9GMkY1L0Y2USdub3JtYWxGJ0YvRkAtSSNtb0dGJDYuUSI9RidGL0ZALyUmZmVuY2VHUSZmYWxzZUYnLyUqc2VwYXJhdG9yR0ZILyUpc3RyZXRjaHlHRkgvJSpzeW1tZXRyaWNHRkgvJShsYXJnZW9wR0ZILyUubW92YWJsZWxpbWl0c0dGSC8lJ2FjY2VudEdGSC8lJ2xzcGFjZUdRLDAuMjc3Nzc3OGVtRicvJSdyc3BhY2VHRlctSSVtc3VwR0YkNiVGPS1GIzYmLUkjbW5HRiQ2JVEiM0YnRi9GQEYvRjJGNS8lMXN1cGVyc2NyaXB0c2hpZnRHUSIwRictRkM2LlEiK0YnRi9GQEZGRklGS0ZNRk9GUUZTL0ZWUSwwLjIyMjIyMjJlbUYnL0ZZRmRvLUYsNiZRI2F6RidGL0YyRjVGYG8tRiw2JlEiYkYnRi9GMkY1LUZDNi5RIn5GJ0YvRkBGRkZJRktGTUZPRlFGUy9GVlEmMC4wZW1GJy9GWUZgcEZA have a non-real root LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYnLUkjbWlHRiQ2JlEieEYnLyUlc2l6ZUdRIzE0RicvJSdpdGFsaWNHUSV0cnVlRicvJSxtYXRodmFyaWFudEdRJ2l0YWxpY0YnLUkjbW9HRiQ2LlEiK0YnRi8vRjZRJ25vcm1hbEYnLyUmZmVuY2VHUSZmYWxzZUYnLyUqc2VwYXJhdG9yR0ZALyUpc3RyZXRjaHlHRkAvJSpzeW1tZXRyaWNHRkAvJShsYXJnZW9wR0ZALyUubW92YWJsZWxpbWl0c0dGQC8lJ2FjY2VudEdGQC8lJ2xzcGFjZUdRLDAuMjIyMjIyMmVtRicvJSdyc3BhY2VHRk8tRiw2JlEjaXlGJ0YvRjJGNS1GOTYuUSJ+RidGL0Y8Rj5GQUZDRkVGR0ZJRksvRk5RJjAuMGVtRicvRlFGWUY8satisfying LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYoLUkjbWlHRiQ2JlEjeHlGJy8lJXNpemVHUSMxNEYnLyUnaXRhbGljR1EldHJ1ZUYnLyUsbWF0aHZhcmlhbnRHUSdpdGFsaWNGJy1JI21vR0YkNi5RIjxGJ0YvL0Y2USdub3JtYWxGJy8lJmZlbmNlR1EmZmFsc2VGJy8lKnNlcGFyYXRvckdGQC8lKXN0cmV0Y2h5R0ZALyUqc3ltbWV0cmljR0ZALyUobGFyZ2VvcEdGQC8lLm1vdmFibGVsaW1pdHNHRkAvJSdhY2NlbnRHRkAvJSdsc3BhY2VHUSwwLjI3Nzc3NzhlbUYnLyUncnNwYWNlR0ZPLUkjbW5HRiQ2JVEiMUYnRi9GPC1JJm10ZXh0R0YkNiVRIz9+RidGL0Y8LUYsNiNRIUYnRjw=This problem can be expressed as a quantifier elimination problem: LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYqLUkjbWlHRiQ2I1EhRictSSdtc3BhY2VHRiQ2Ji8lJ2hlaWdodEdRJjAuMGV4RicvJSZ3aWR0aEdRJjAuMGVtRicvJSZkZXB0aEdGNC8lKmxpbmVicmVha0dRKG5ld2xpbmVGJy1GMDYmRjJGNUY4L0Y7USVhdXRvRictSShtZmVuY2VkR0YkNiUtRiM2JS1JI21vR0YkNi5RKSZFeGlzdHM7RicvJSVzaXplR1EjMTRGJy8lLG1hdGh2YXJpYW50R1Enbm9ybWFsRicvJSZmZW5jZUdRJmZhbHNlRicvJSpzZXBhcmF0b3JHRlIvJSlzdHJldGNoeUdGUi8lKnN5bW1ldHJpY0dGUi8lKGxhcmdlb3BHRlIvJS5tb3ZhYmxlbGltaXRzR0ZSLyUnYWNjZW50R0ZSLyUnbHNwYWNlR0Y3LyUncnNwYWNlR1EsMC4yNzc3Nzc4ZW1GJy1GLDYmUSJ4RidGSi8lJ2l0YWxpY0dRJXRydWVGJy9GTlEnaXRhbGljRidGTUZKRk0tRkI2JS1GIzYlRkYtRiw2JlEieUYnRkpGYW9GZG9GTUZKRk0tRkI2Jy1GIzZOLUklbXN1cEdGJDYlRl5vLUYjNiYtSSNtbkdGJDYlUSIzRidGSkZNRkpGYW9GZG8vJTFzdXBlcnNjcmlwdHNoaWZ0R1EiMEYnLUZHNi5RKCZtaW51cztGJ0ZKRk1GUEZTRlVGV0ZZRmVuRmduL0ZqblEsMC4yMjIyMjIyZW1GJy9GXG9GYXFGZnAtRkc2LlEnJnNkb3Q7RidGSkZNRlBGU0ZVRldGWUZlbkZnbkZpbi9GXG9GNy1GYnA2JUZqby1GIzYmLUZncDYlUSIyRidGSkZNRkpGYW9GZG9GanBGY3FGXm8tRkc2LlEiK0YnRkpGTUZQRlNGVUZXRllGZW5GZ25GYHFGYnEtRiw2JlEiYUYnRkpGYW9GZG9GY3FGXm9GXnItRiw2JlEiYkYnRkpGYW9GZG8tRkc2LlEiPUYnRkpGTUZQRlNGVUZXRllGZW5GZ24vRmpuRl1vRltvLUZncDYlRlxxRkpGTS1GRzYuUSJ+RidGSkZNRlBGU0ZVRldGWUZlbkZnbkZpbkZmcS1GRzYuUSYmYW5kO0YnRkpGTUZQRlMvRlZGY29GV0ZZRmVuRmduRmBxRmJxRl1zRmZwRmNxLUZicDYlRl5vRmlxRmpwRl1xRmdxRl5yRmFyRmdyRltzRl1zRmBzRl1zLUZncDYlUSIxRidGSkZNRl1xRmpvRmNxRl5vLUZHNi5RIj5GJ0ZKRk1GUEZTRlVGV0ZZRmVuRmduRmpyRltvRltzRl1zLUZHNi5RKCZ3ZWRnZTtGJ0ZKRk1GUEZTRlVGV0ZZRmVuRmduL0ZqblEsMC4xNjY2NjY3ZW1GJy9GXG9GYHRGXXNGam8tRkc2LlErJk5vdEVxdWFsO0YnRkpGTUZQRlNGVUZXRllGZW5GZ25GanJGW29GW3NGTUZKRk0vJSVvcGVuR1EiW0YnLyUmY2xvc2VHUSJdRictRkc2LlEiLkYnRkpGTUZQRlNGVUZXRllGZW5GZ25GaW5GZnFGTQ== Next we call RealTriangularize to compute the semi-algebraic system LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzZOLUklbXN1cEdGJDYlLUkjbWlHRiQ2JlEieEYnLyUlc2l6ZUdRIzE0RicvJSdpdGFsaWNHUSV0cnVlRicvJSxtYXRodmFyaWFudEdRJ2l0YWxpY0YnLUYjNiQtSSNtbkdGJDYlUSIzRidGMi9GOVEnbm9ybWFsRidGQS8lMXN1cGVyc2NyaXB0c2hpZnRHUSIwRictSSNtb0dGJDYuUSgmbWludXM7RidGMkZBLyUmZmVuY2VHUSZmYWxzZUYnLyUqc2VwYXJhdG9yR0ZMLyUpc3RyZXRjaHlHRkwvJSpzeW1tZXRyaWNHRkwvJShsYXJnZW9wR0ZMLyUubW92YWJsZWxpbWl0c0dGTC8lJ2FjY2VudEdGTC8lJ2xzcGFjZUdRLDAuMjIyMjIyMmVtRicvJSdyc3BhY2VHRmVuRj0tRkc2LlEnJnNkb3Q7RidGMkZBRkpGTUZPRlFGU0ZVRlcvRlpRJjAuMGVtRicvRmduRlxvLUYsNiUtRi82JlEieUYnRjJGNUY4LUYjNiQtRj42JVEiMkYnRjJGQUZBRkNGaG5GLi1GRzYuUSIrRidGMkZBRkpGTUZPRlFGU0ZVRldGWUZmbi1GLzYmUSJhRidGMkY1RjhGaG5GLkZoby1GLzYmUSJiRidGMkY1RjgtRkc2LlEiPUYnRjJGQUZKRk1GT0ZRRlNGVUZXL0ZaUSwwLjI3Nzc3NzhlbUYnL0ZnbkZlcC1GPjYlRkVGMkZBLUZHNi5RIn5GJ0YyRkFGSkZNRk9GUUZTRlVGV0Zbb0Zdby1GRzYuUSYmYW5kO0YnRjJGQUZKRk0vRlBGN0ZRRlNGVUZXRllGZm5GaXBGPUZobi1GLDYlRi5GY29GQ0ZGRl5vRmhvRltwRmFwRmdwRmlwRlxxRmlwLUY+NiVRIjFGJ0YyRkFGRkZgb0ZobkYuLUZHNi5RIj5GJ0YyRkFGSkZNRk9GUUZTRlVGV0ZkcEZmcEZncEZpcC1GRzYuUSgmd2VkZ2U7RidGMkZBRkpGTUZPRlFGU0ZVRlcvRlpRLDAuMTY2NjY2N2VtRicvRmduRlxyRmlwRmBvLUZHNi5RKyZOb3RFcXVhbDtGJ0YyRkFGSkZNRk9GUUZTRlVGV0ZkcEZmcC1GPjYlUSMwLkYnRjJGQUZB JSFH R := PolynomialRing([y, x, b, a]); JSFH JSFH JSFH sys := [x^3-3*y^2*x+a*x+b=0, 3*x^2-y^2+a=0, 1-y*x>0, y<>0]; JSFH JSFH out := RealTriangularize(sys, R, output=record); JSFH From the output, one could easily see that the answer of the QE problem is: LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYtLUkjbW5HRiQ2JVEiNEYnLyUlc2l6ZUdRIzE0RicvJSxtYXRodmFyaWFudEdRJ25vcm1hbEYnLUkjbW9HRiQ2LlEnJnNkb3Q7RidGL0YyLyUmZmVuY2VHUSZmYWxzZUYnLyUqc2VwYXJhdG9yR0Y7LyUpc3RyZXRjaHlHRjsvJSpzeW1tZXRyaWNHRjsvJShsYXJnZW9wR0Y7LyUubW92YWJsZWxpbWl0c0dGOy8lJ2FjY2VudEdGOy8lJ2xzcGFjZUdRJjAuMGVtRicvJSdyc3BhY2VHRkotSSVtc3VwR0YkNiUtSSNtaUdGJDYmUSJhRidGLy8lJ2l0YWxpY0dRJXRydWVGJy9GM1EnaXRhbGljRictRiM2Ji1GLDYlUSIzRidGL0YyRi9GVEZXLyUxc3VwZXJzY3JpcHRzaGlmdEdRIjBGJy1GNjYuUSIrRidGL0YyRjlGPEY+RkBGQkZERkYvRklRLDAuMjIyMjIyMmVtRicvRkxGX28tRiw2JVEjMjdGJ0YvRjJGNS1GTjYlLUZRNiZRImJGJ0YvRlRGVy1GIzYmLUYsNiVRIjJGJ0YvRjJGL0ZURldGaG4tRjY2LlEiPkYnRi9GMkY5RjxGPkZARkJGREZGL0ZJUSwwLjI3Nzc3NzhlbUYnL0ZMRmJwLUYsNiVRIzAuRidGL0YyRi9GMg== Consider now an example which has finitely many complex solutions. R := PolynomialRing([x, y, z]): Define a set of equations. sys := [x^3 + y + z -1=0, x + y^3 + z -1=0, x + y + z^3 -1=0]; Compute the real solutions of sys. dec := RealTriangularize(sys, R, output=record); Returning now to systems which have infinitely many complex solutions, consider the intersection of the algebraic surfaces Sofa and Cylinder from the Algebraic Surface Gallery. As their names suggest, they are respectively the equations of a sofa and a (sort of) cylinder. One expects to find a real curve in their intersection, as we shall verify. R := PolynomialRing([z, y, x]); Sofa := x^2 + y^3 + z^5; Cyl := x^4 + z^2 - 1; The plot of the two surfaces. plots:-implicitplot3d([Sofa=0, Cyl=0], x=-5..5, y=-5..5, z=-5..5, color=[red, blue], numpoints=400000); Compute the triangualr decomposition of intersection of the two surfaces. RealTriangularize([Sofa, Cyl], R, output=record);
<Text-field style="Heading 2" size="14" layout="Heading 2"><Font size="14">LazyRealTriangularize: <Font bold="false">an</Font> interactive/lazy<Font bold="false"> manner to do RealTriangularize</Font></Font></Text-field> Consider again the generic equation of degree two. Now we solve it interactively. R := PolynomialRing([x, c, b, a]); sys := [a*x^2+b*x+c=0]; Use LazyRealTriangularize to start the decomposition. dec := LazyRealTriangularize(sys, R); Go one step further, computing components in lower dimension. dec2 := value(dec); Go the last step, computing components in dimension zero. value(dec2); If one is only interested in computing the main components, the list output format does the job. dec := LazyRealTriangularize(sys, R, output=list); Display(dec, R); Another way to conduct the computation interactively is to use the record output format. dec := [LazyRealTriangularize(sys, R, output=record)]; Go one step further. dec2 := value(dec); Go the last step. value(dec2); Computing a lazy triangular decomposition is usually much less expensive than computing a full one. The following is an example. variables := [x, u, v, w]; R := PolynomialRing(variables); sys := [u*x^2+v*x+1=0, v*x^3+w*x+u=0, w*x^2+v*x+u<=0]; Computing a lazy decomposition takes than a second. dec := LazyRealTriangularize(sys,R,output=list); Computing a full one does not terminate within an hour.
<Text-field style="Heading 2" layout="Heading 2">1.3 <Hyperlink linktarget="Help:RegularChains[SamplePoints]" hyperlink="true"><Font bold="true" style="Text" underline="true" foreground="[0,128,128]" size="16">SamplePoints</Font></Hyperlink><Font style="Text" size="16">. </Font><Font style="Text" size="14">It produces at least one sample point per connected component of the solution set of </Font><Equation executable="false" style="2D Math" input-equation="" display="LUkjbWlHNiMvSSttb2R1bGVuYW1lRzYiSSxUeXBlc2V0dGluZ0dJKF9zeXNsaWJHRic2JlEiU0YnLyUlc2l6ZUdRIzE0RicvJSdpdGFsaWNHUSV0cnVlRicvJSxtYXRodmFyaWFudEdRJ2l0YWxpY0Yn">LUkjbWlHNiMvSSttb2R1bGVuYW1lRzYiSSxUeXBlc2V0dGluZ0dJKF9zeXNsaWJHRic2JlEiU0YnLyUlc2l6ZUdRIzE0RicvJSdpdGFsaWNHUSV0cnVlRicvJSxtYXRodmFyaWFudEdRJ2l0YWxpY0Yn</Equation><Font style="Text" size="14">. Each sample point is represented by a </Font><Font style="2D Output" size="14">box</Font><Font style="Text" size="14">. This way of solving is often sufficient in practical problems.</Font></Text-field> Consider again the generic equation of degree two. R := PolynomialRing([x, c, b, a]); F := [a*x^2+b*x+c=0]; Compute sample points of the 4-variable hypersurface it defines. S := SamplePoints(F, R, output=record); Consider the Tacnode curve. We look for sample points in the middle of the right branch. R := PolynomialRing([y, x]); F := [y^4-2*y^3+y^2-3*x^2*y+2*x^4]; with(plots): implicitplot(F, x=-2..2, y=-1..3, numpoints=1000000); SamplePoints([op(F), 2*x > 1, x < 1], R, output=record);
<Text-field style="Text" size="14" layout="Normal"><Font bold="true" size="16">1.4</Font><Font bold="true" size="14"> </Font><Hyperlink linktarget="Help:RealRootClassification" hyperlink="true"><Font bold="true" style="Text" underline="true" foreground="[0,128,128]" size="16">RealRootClassification</Font></Hyperlink><Font size="16">. </Font><Font size="14">Consider some variables U in S are parameters. It <Font encoding="UTF-8">computes the condition on parameters for the S to have a prescribed number, say q, of real solutions. It return a condition C together with a polynomial b, s.t. provided b does not vanish, S is specialized to have q real solutions by a parameter value u if and only C(u) is true. The condition returned is either a Tarski quantifer free formula defining an open set in \342\204\235</Font><Font superscript="true">d</Font> or an extended Tarski quantifer free formula with the notation of n-th root of a polynomial w.r.t. a variable when all real roots are delinearble over the feasible region of other variables. Conditions are represented by type </Font><Font style="2D Output">regular_semi_algebraic_set</Font><Font size="14">.</Font></Text-field> <Text-field style="Heading 2" layout="Heading 2"></Text-field> Consider a simple system {x^3-a*x+b=0, x>0}. R := PolynomialRing([x,a,b]); rrc := RealRootClassification([x^3-a*x+b], [], [x], [], 2, 1, R); We can use Display command to get the user-friend information for the typed objects. Show the quantifier free formula encoded by the LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYmLUkjbWlHRiQ2JVE7cmVndWxhcl9zZW1pX2FsZ2VicmFpY19zZXRGJy8lJ2l0YWxpY0dRJXRydWVGJy8lLG1hdGh2YXJpYW50R1EnaXRhbGljRictSSNtb0dGJDYtUSIuRicvRjNRJ25vcm1hbEYnLyUmZmVuY2VHUSZmYWxzZUYnLyUqc2VwYXJhdG9yR0Y9LyUpc3RyZXRjaHlHRj0vJSpzeW1tZXRyaWNHRj0vJShsYXJnZW9wR0Y9LyUubW92YWJsZWxpbWl0c0dGPS8lJ2FjY2VudEdGPS8lJ2xzcGFjZUdRJjAuMGVtRicvJSdyc3BhY2VHRkxGL0Yy rsas := rrc[1][1]: Display(rsas, R); Show the contend of the LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYmLUkjbWlHRiQ2JVEyYm9yZGVyX3BvbHlub21pYWxGJy8lJ2l0YWxpY0dRJXRydWVGJy8lLG1hdGh2YXJpYW50R1EnaXRhbGljRictSSNtb0dGJDYtUSIuRicvRjNRJ25vcm1hbEYnLyUmZmVuY2VHUSZmYWxzZUYnLyUqc2VwYXJhdG9yR0Y9LyUpc3RyZXRjaHlHRj0vJSpzeW1tZXRyaWNHRj0vJShsYXJnZW9wR0Y9LyUubW92YWJsZWxpbWl0c0dGPS8lJ2FjY2VudEdGPS8lJ2xzcGFjZUdRJjAuMGVtRicvJSdyc3BhY2VHRkxGL0Yy bp := rrc[2]: Display(bp, R); One can continue investigating the parameter values vanishing the border polynomial factors. rrc_b := RealRootClassification([x^3-a*x+b,b], [], [x], [], 2, 1, R): Display(rrc_b[1][1],R); Display(rrc_b[2],R);
<Text-field style="Heading 2" layout="Heading 2">1.5 <Hyperlink linktarget="Help:Difference" hyperlink="true"><Font bold="true" style="Text" underline="true" foreground="[0,128,128]" size="16">Difference</Font></Hyperlink><Font bold="false">. <Font encoding="UTF-8" size="14">For any two semi-algebraic sets A and B (represented by list regular semi-algebraic systems), this command computes the set-theoretical difference of A \134 B, represented by a list </Font><Font size="14">regular semi-algebraic systems as well.</Font></Font></Text-field> S is the semi-algebraic set defined by a*x^2+b*x+c = 0. R := PolynomialRing([x,a,b,c]): S := RealTriangularize([a*x^2+b*x+c = 0], R): map(Display,S,R); A is the semi-algebraic set defined by a=0. A := RealTriangularize([a = 0], R): map(Display,A,R); Compute the difference of S \134 A. S_A := Difference(S,A,R): map(Display,S_A,R);
<Text-field style="Text" layout="Normal"><Font bold="true" size="16">1.6</Font> <Hyperlink linktarget="Help:CylindricalAlgebraicDecompose" hyperlink="true"><Font bold="true" style="Text" underline="true" foreground="[0,128,128]" size="16">CylindricalAlgebraicDecompose</Font></Hyperlink>. <Font encoding="UTF-8" size="14">For a set of polynomials F in n variables, this command computes an F -sign invariant cylindrical algebraic decomposition of the real space \342\204\235</Font><Font superscript="true" size="14">n</Font><Font size="14">.</Font></Text-field> <Text-field style="Heading 2" layout="Heading 2"></Text-field> R := PolynomialRing([y,x]): cad := CylindricalAlgebraicDecompose([x*y-1], R);
<Text-field style="Heading 1" layout="Heading 1"><Font size="20"> 2. Applications</Font></Text-field>
<Text-field style="Heading 2" layout="Heading 2">2.1 Verification of real solvers.</Text-field> The following two systems S1 and S2 are both conditions for a triangle with edge lengths a, b, c (denoting the respective edges a, b, c too) to satisfy that the external bisector of the angle of a, c intersects with b on the other side of the triangle. We set S1 up first. C1:=[a > 0 , b > 0 , c > 0 , a < b + c , b < a + c , c < a + b, b^2 + a^2 - c^2 <= 0 ]: C2:=[a > 0 , b > 0 , c > 0 , a < b + c , b < a + c , c < a + b, c*(b^2 + a^2 - c^2)^2 < a*b^2*(2*a*c - (c^2 + a^2 - b^2))]: S1 is the disjuction of C1 and C2. S1:=[C1, C2]; Then we set S2. S2 := [a-c<0, a > 0 , b > 0 , c > 0 , a < b + c , b < a + c , c < a + b]; Compute regular semi-algebraic system representations dec1 (resp. dec2) for S1 (resp. S2) R := PolynomialRing([a,b,c]): dec1 := map(op, map(RealTriangularize, S1,R)); dec2:=RealTriangularize(S2, R); Compute the differences: S1 \134 S2 and S2 \134 S1 Difference(dec1,dec2,R); Difference(dec2,dec1,R);
<Text-field style="Heading 2" layout="Heading 2">2.2 Realization of matroids.</Text-field> In any 2D affine space, "3 points A1, A2, A3 are colinear" can be characterized by the following condition. colinear := (A1,A2,A3) -> (A1[1]-A2[1])*(A2[2]-A3[2])-(A1[2]-A2[2])*(A2[1]-A3[1])=0: "3 points A1, A2, A3 are not colinear" can be characterized by the following condition. non_colinear := (A1,A2,A3) -> (A1[1]-A2[1])*(A2[2]-A3[2])-(A1[2]-A2[2])*(A2[1]-A3[1])<>0: In \342\204\2352 (orientable), suppose we have the following set of points. TUZOV3RLVWI8b2I8Uj1NRExDZE5OWjtsOkBTPlQ6ZGtwYFBZQ0JgTlxcQE5kXFxRZ3F4aGFKSHluZHl5XUF5QV1WZWRMPV1rX2B3RUVTcEVVPG1sa3hqQm1YRE1sb0RTbHhScGBTZFxcTl90UVtgV0NAT0VtWF1NS19lV0tgVz1lVll1bllNU05keHlxbV15UG15bWdZUW11cXVpVVh1c0FZVlhUcndxT211eG1xcWFxbW1tb0JCOmtjTW93WXVEUFU6V2I8O2ZFaUdmbzpzdltbQjw+YkJeOkZeSkI6O0JbO0w6PEpCRGo6PFo6SzpSQltaOl5qOks6PDs7Ojw6PUM+Plo+QEI8SkJCOko6UkJbWjpeajpLOjw7Ozo8WlpeWjxKOj1LPj46P0RCPEo6XFxqOj9aOj4+PDpbWjpiSjtbOj47QkI+Ojw7O0pbPDw7QjxKSkI6Pjw8Wjw/PjxKPlpaSjo+XFw8Wjo7QExCPlo6Xmo6Szo8Ozs6PDo9Qz4+Wj5AQjxKQkI6SjpSQltaOl5qOks6PDs7Ojw6PUM+Plo+QEI8SkJCOlxcOjtCOjs7PFJCQjpETkpCOks6PDw7anNkcGJldDtNd0BdUHFkdHZkbXhUWFBNcF91c2lUWGBxT1pVSj9EVUBsVDtCbU1pdkV5cUV3cWF5RU1oYXVzcU94TXlzeT9zWXdZWGVkVkdWc1tmVGVoZEtIbj14RUtUeF9VU1NyWWlEb2d2RUVVa09YR19SaW1VVz9XdGloZXV0Xml0QklzbEl2dndjXmF2Y1d0THdHaT1pbk13cmFiRkNZY0lZQ0Fla1NmUVl4eENWXFxZZWxXVmFxV1NpaGV1Z1ZPSXdtUlRzSEQ/ZE9Tc1FrRnV1VXJtZVZRdG13UnFDRXBLVkZfaHNdaV9fVkdRZT9nQ1lbRk5hQjw8cl5wWXlZdklEUXRdeGFEV0pEVFFNTmFcXGtQSG1pcVNLcFdJZVhMaG9VdXFMUHdvVE1CcXhpcFhUbHloSFBdVU5fUFQ/UVhMZXVPPE5NTHdKSXlTRE1tbHdvRG9RdW9wYFNVUExjZFhkYXROeXlRVXR3RVB2XXZSRXlEaVB5ZXZEaVFScHZ1VXlucXdodHZIeVVKSG1tcHZsSHQ9QGtUQEJrRl9PV0NxaGZNVU9fV3RPZ2tTR1VFdltFZWtTWHBfVHc9Z0xNZVlZWFpBdltFY0RvdWRTVGFzU0ZdSHdld3RnY2xfV3NRU1NrSW49ZkZvWXM9Y1hvZjxtVmhfZVtNaXA9WHdxYkdRVHlvdV1rVUdZeUtXYnVdZkpFcnVleHlXdGFNQ0VleHd3eE47c2ljaGRtVFFHRWlpc1B3dnRxSUVxYklLRGRNQjs8VmtkSmx5dm1Bd3dZU1BwWWR4WXFcXFdKdVBLYXhzWUtRQHNndHBWUU53UXluQVNuZHF5dXFYUGxoZFV0RG1xQFZreHRtQU1RTl1PYW5rX2pWXmFuX2J4eHVxeG1HXl1eXnQ+Tjo7ZVZ5dXl1eWdzeXd5d2lNeEl5aXlRc2tXVnlTd1VpaFNRaFdxV3JvdGZLeUVnV0xrRFBXUkRfRGhbZGJNeWhnVXVdZlJFdDxReW9fYmxldkRJRz9VY05LdGdJeTxnZmxlZkRLeXFxZGJpZ2xBUmNZeVJBdz4/Ujo8VlVxeFdMVGFweV1IeHl5VG9EaktVTVFNU1N5Slk8UG5JeXdZeUk8cTw8VjthVk1pVEE9bERlTEV5bnJJbXZFeWxRc2hpUVlhSmdFTUVQcTxBb2xZamVtVUtcXE1WcUtAPEo6YXZEYVFqdXFmWHl2WUxTZXFcXEVwRl1takxTUWFLcDxXVlFzaj1WdHRZW1FuXnVzWGhRU2F4ZXRUeGFsRkVtbGRuckltRkltbVR3UVlqX1xcT0Fpc3NZUXFtd3ZUTVZATEI8SjpcXGxmSXVpUWx0aFhkRXdYTXI9dEpuaWxpbHB2bU95eHl4WXFueU1qXFxySnl2T1V5eHhZeWl5cUR1bmVQVlRrVExOYGROUXVvWGVLZEFYZ0RYbXluYGlMPkBCO1M7RXY8ZUJfSWZEaURfVXVweWdHY2lZZXhwaWNHZ2NHbUhXZWNDO1lkYXRjYUR5U1hsYXZjY3l0PWhWTWN3aXhgYWlgUXNDcUJgW0I8XnVzUGlnUW14aGZlX2JjUGRfXl5gQXdJR3NgeGRmQGVYb1tZRmFkdlxcaW5lRF9gd2F5c1lbbF9eYEFtTj9vSm9fYldzbT95al9reGlldHF5TF9nVk9iWj5aOm5zUGBgVmhyU0lwbXdrZmF1b3hkZHd0ZEhmYllpTkFddndsaGZyZEFmUUBkdXFwZ2B2WXhpeElsY1h0YF9eVHBhX2lvcWd4Z0l1SGZ3VHdaZ0dlT1l0P092YGlcXDtJYmlBRmxOb2RXdGFTU0VxZGVrbkxXUnVVSVhxcVV2QGlLU2lxcVlVc0FYWFFOV3FTak1ycnhsR2RZSVlWZ1RtQ0FzS1V2X2VzVGlLTHluUXV4ckl3R1RNTllsYHlrcGxsa1VMWHV0SV13YmBUW2BtdmV3RFRWbXB1eUFUVF1QaU1uVUFOYFxcbkBkWXB1eHJ5cF5gdHFtTk5UTG1dUEthcFtVUlg9U25ReWRodGVhbj5FeFxcYHQ+TEw8RFo6UGFJYHROeGd5WHVhdl12P3FCb2NZSGFlRndNeW5RWGlpSXNpZnVYYHdedl9HTndpRmk9WXhSTnlYUGRfVmtFZ3dUaHRfb3V2eWtMZmo6Z2ZbYXF5QXNyeWRZQXRJcVtYaGFhb3F4cWNPPnRAcFtYPmxiaWlkSWFAUWNyP2loV2J5V2Q/cHM+YHQ6P3RDdm5fXls7eHFWdmFbeHJsXm1ORmFAaGtIP1s+QjpZcm9LZ2R5RXk9RWtbWUpfdEc/V2h3clZbZ1BlaGxdeW5lSD5dY3RdVlZddV1VdlZJY1RReF9vQ1tPZ3FNaEtzSGhnVW5bSWlVdFhxZWNXSWlfWGlxdD9nY1hbUm5HQz52Wkpnd0FWbW9mZ1Jgb0Bwc2JocGV5YENXeXBnb19AaWtQXnhzRWV0am1pbVNWUF9jWVNJbDtnPU10Ok9lOj1KcmxybGlubWlxeGF3bkhPS0hKU3huamFRc2h2bF13Q2xQSD1LSlVMQkJaW1pqTm4/V29ITnF3Z2Q8T29hYWZtcFxcZ2F5eHlwTHBpaVBxd29sZ1ZpeEdtbXZoO1ZdPD5qUUFxV15bOklcXE53c0F5c1BvaWhWYXBfd1BYYGF3c0NpXXFfZk1QZ09Xb0JBbFFwbVF4amRgZG5Bd3VgZD1GeU9WX1FBY25xdk9JXlNvXFxvV3lmeGZJcGdsXmc+QV1jV3hyV2NUSWQ7Pl4+Tlo6WGFXV3FvUWxBVnNOcGxoZm1VSXdrcXROP1xcVnB5SHlpXnBkV3BebFB3bXhrXnBlV1F1QHhxZV9zUkFjY2Bka2BtTndvUGdeXldzTXlucXdoc1doRGFoU0hhZW9vdnZ0cUllcD5gVlFjY0lldkhfd3ZiUm5zPWl3WmNdW2dZVWhGbXhmYXVcXHNnRk9FZHNTcGV3WldXOnNod0VpSE1IX01zYlNSQGdjcFt5d3NCSGtFUD9nYmlnTElnXVV1Sm9HSWlJP0t4ZXlGZVtzcnVXcFNFUWtFP0hvR3VKWzxcXFJxa1RyR01nOm15dk1UX09YP0V1cVlyO1NyWVloXkV3YU95cVVyQGNYR2NpWWVDSldVXj9Zc0NHVl1nZm9DSm95TmFma11ieHF5aXl4Z3lWPVNyXUFmQT1EPkNGSjtiXWd5bFlza0VpdXNUSFVyaXlUSWVIQlNDRUlGP01DUUtTbWlpVXlpVElHSXN0aF1mVXlFeEVFd29SRG1kYmt2UUlZaV9VY09ieGlpX0tZZVNFTDtiQUFXTTtrXWVZdmBWc2BNQ0hRYHRPd0B1WUF4YW14aXlRWlFbRW5uc3FhT0loXmhlQXFndHBua0d1TEhpdD5bdFllS1FuP2h4aXldcHldWldmdD5cXG9GaVpeWjxyP2d5eWtFTm9Fd29lUXlDZndTdEFGdWF0VndpamBsY1RUdGR0cWFzdnlzVkV3V3l3P0VXb0F1XVBQcWl5Y1Fsa1RWQEFqZlRSUm1rZlF5cUlxbXV2U0FuPlxcUTpATEI8SmNFUXBZdElRdGJIU2VFc1RoTkVgb3JhWEtgdXBVVVB1a0R0dk5RWVBtWWtpdnBEVXdJeXREWWZoVm1EVWpJdkZBalBsdmtVeDs9VlpcXHY7XFxqOj9sQFhcXGF2Y0NneUBmX19Rd29YZ2xIaT1RWz1nZ3VRXFxMd1tzeGtHaGtvV3l0aXlxaWxOWF9Rb3lOaGBld2BiSXg+dl1jaHlqP3JQaHZMX3dpeGBhSXM9cGBHQHBZP3JtcXhcXD9qW09mOj9bPj52Uk5nZj9ydGlbVD9jZnlveVBzQGhwRWl2eFBkX15heHFrTG9vSWF3d3F2dXZwaXh2QklsPW9kZnZtaEZcXEdwXU1wZmdOdWRxeDpoeGVpYUw+bF9JYXY/YUB3eWhmaXlHX3Bub0dXYlhIbFpwdkdheUpSSktCOztxRXhMaURTPlVyUFBYZGF4U0RVdVB5TURPUW1wRnhUWVluQHF2VUFxY1VraEFUTF1wQkVOcURSalRxSERtR1RtblBsYHlrbz1sX1hrYVFTXXBqb2l5eGBTdWxYaHFrWXhOUnVPWkl5XVxca3NNUHlgSnk8TDxESnJMbERcXFZkeExndXBhUFFDXVNGSVR3WWxKdWpwaVdGZFlJUFdleVBsXXRyb2hpd21YZ3VXcXFpcW91cHdOaGhZeF9NcHJHcV1ReHJYdndmVmtRbnNQcGZHV11AeXFocG1BXnVySGQ+YG9Sb3FKWXdfT2VvUGlXcHdSUWJHP25zVmJYP149d1xccXBpOz9bPj5aPXB4Zmlxc1dbcW90dXldZHltXmBrQEByTGdeRVhDb25sdEdfVD09Zlxcb2I/R1VtT1djX0hnbXk+X0lYcWhlX0dWd3hZQ1dTUWZjX1V4X3l1b1l3W0l2c2hRWXNtWXNrWUR0XXM8SVNLV1ZSQWlbO0NyRWZGa1RocWRNZXNJc2NCV0JbO0Q6S2RyR1hnUWZZcWllXXJqSVJMdUhcXEdpZlV1eFdSZGdUZ19lZHl1cmd5cFl1XktXXVFzPlV0TnViS194Y1l0RUFyO2NZd29lcUlXaXVzTmllTk1pcVV3PD1LXUBqYWl3bFlcXDxAXFxCUkpbdGhnVD11dVRpVHFnYk9VdXlzU2dnVXlHU1R5aGVlRz9ZY09DeGR5d1lvSW1tVFhJZWtTU1hRZVZDR1NVaGBFRlpJdV5bdnNVaHhNVGVJRUY9Qj5DXkI+al9ZY2FZSW1gXFxmaXRZdVtJaWxLZl9qdlZtPl5haXNAPUI+Q146WGY8bm1NUFpIT2VveGk+PmJKTjpUdT5gUTxcXGtrUHV5TDpiX01CWENGP1l5Z0lkbmVpSztCOz1DPj1Tbz9XT0lSSWNYa0dYV3lmO3N5VW1lRkdnYE9FR3lEaWNUO3VIVHd3VGlmd1NFRFtiREtCWGdmcVdEOztEPkB4RUhLTXR1TnlTUzx1b1hXaXBZbE1qcVhqT1FvW2xPUF1vVlVOS1ltUVVtaEVNT1Vuc3Ftd0xxQ0FwS1RWXmhzXWlPZ1V0dU1McFlPXllqc2FwQkxSWGh4PDxWRFV3VUBKQkxicmdnckFza1BocW9vVlBkY1BkP2ZdPGZxb25mZl9uTk9vUm9jZHhkZVBmRGl2Zll0dVhxdkhhX09xRmFtb3ZkWFh3dWE/d2JjU0NzZUh3Y2g8W2VUXUk8O0Y7O0Q+dmBBb1toSWw8a2R5WWVYVWZwdXI8WGpBcD5lUmllbGNYbGFMbXBFUWlJT0puaVhQd0Z4eGBXXFw8RmZEUWJ4PnU7d2tqQGZXQXhBP1o+Rj53VT5panhAVWxgeGBVTTpxakdMd2BUWWdsdmJJUFM8UGo9cWZta0RwbEZITW1McVhZVEltdVJgUEhNcm15bGpJeXNEb0Rxc1dVWV9pclFwUkJxb1dZWV9xc3Vsd0p4bnVoWFBIVF10SmFAWTxgV0xBUTxtSkhMTVt0dWlZdWl0S05wcUloa0lUVD94UTxsTXVxSjs8TD5AUlJta3RtVWM9VVJtS2NMVHJAVFxcSHdRbE9WXWxUdWtuRGxZcU9ZbWx4aHFZSHRpeG9ZQU1fZFNZZFddeWx5WFlOaUxqVHVuaHdkdFN3RHVLTVFvPVk8bVFSeHBCbXJIRmNJWWN5cGF3Tmx3eHFsZ25ESkVDWztEPl9JUk9ZWUdOPkROSmxsanhZeUlKUT1yZTxtZk1ZXmFuY1BxYW13YXhtRnlsYGhTVEx3Y01PamhRV1luWWB3WFl4Z3hzeXV4WkluXUxwd1lzb1FxZ0xubGFSVXhyXnFtPGluX21zVmlKY2xqOlFuP1VLZXl1eTxxYHlMalRXOlluSnVYcHFRX0lXVUBUcGlMSkxKS0xUYXlPVl1sbGRWRHVOVXBxbGV0VERPSnhRWV1pUnZuSXdvaFFgdW9zdndteXF3PXBveUhdUT5aT1h1aXdxR09zdz55OmBpd1hocU9raXlbRUlsV3d5eHZoaGFhVWZbW2Zbc29iYHlqPGl1c1d5VEZaSl5Ka2R2Q2dfX1hsS3ljeXZdUVRdT3k9RXNgd2RkQ1VWeUd5dUh2W0lJTWhjRVVpVWlHbXl2WXhkTWdhO1VtZ0RyQWhRPXJFVWdabUh0c0k+Q1JhYXdFb3VmWUhmWUVaW0I8YURsZXZGU2RSQXVSVXRRa3dRT1Z5ZWlzc2lzT1hsR3RCQ1k7Q0NybXlYd1Q8P2Z3eXhLTUJaO0M7P2huT1RfT1NCcXVpbWlFbUh3P3Z3Z0JeQXRbV0ZDcWZ5QVlaQVRCbXZtQXhbQUV3WWluaXlfP3ViXUJ2P2I+X0l5XURgSVNZeVJKW2hhcUlmXVZVT0Q6Q1JCVHRNVXZpaVdWYXA/bWs+YU1NUG4/bXl5eGpqVWxAaUteaWtDeVdlcXA7SEtVaUpIVW14VFBeVHhzWHZ5ZVc/ZHR2UXJzRU5pXFxsP3huYWRqc1BtSFVsP1RZaVl1PjxCTEtdcU52cG1ieXlrRFBBVUxHVU1wXFx2P2BQeVh2a3BsR2FWXkFva1FwYGV3QGR1Y1lOSFlrPVR5Q1FqP3hNRVV5SGV1b3VXV0FxW0xWSHRNeExsXFxJU0hZbGFJSnVVVk9Rd29NVFxcQFlLTVc8ZFdSPHhGYVU6TVlNPW1hZEs8YHRATHVddXVxTHFHRFs7P1s+P2RiQHhQQGxUbmhfRnZuVl5bPmRvX3hiaGVtUHFGWW15SWRcXEBcXGJwXUF3XFxvSGdPYFtSPmFGb252aHhoYHV0V3dnUFxcS3dxSGBfd0F5PUdfTl94O0dzTGhebV95dXdfWW95V3d5SHZbSWldSmh2dml2cklbd25tW2FuQklgZl9oRW5qdlZvUD5qeGFfRklbPHB0eG5eQj5qWl46Y2VVc3RoS3lfWVlAXUNZW0ZvVUZUV3NwZ3d1W2ZUZXRESXhNWWNPY0dWX2dgdVdZeUN5S3dZUXdLbVdrTWZwX1ljQ3dNeWZRR2I9S3l0YUhZcXdkRURhZ2l3U1RxPVZjcXVnV0NVY3VeRUJJcWc/X2VpZ2JzTVNxZ2JDS2JQWUlgXUlTcVU+O1JKS0JbRVNvV1dPQWRgZVNVS3dUXXJHU1dRd3JJdWl0ZXhUX1ZIYWVjQ3R1ZVRnP2ZMdWlYZXdySVdldXRpTWRwaXdUVVNrUVY/XXl4c1dkPXJkeVhgXXNMd2hgc1JEbXRmR1VSQVU8ZUdYR3U9O0Y7PXRYc3JMQ0JKa2RVeWV5aVZpV2JZY0hiXXVETUNPS2lRTUdQd0dlc3Rpd1VRZ0Rlb3RkcWg9Z1hlYXRMZ2hld2RMQUJYUXY7c2M8T3NScUhCW3JKUUhmd1htcUVlbWVoVUVwd0dGTWh5c2Zdb0ZKa1lPdXZLd2JfbXV2aXJ0Z2laaXhleUhuaUdaSXI9T3lFQXhbd0dMO0JnO0RsQUdCT1JZbHJ3dUpBWWtvbGs7TUpaXFxvRkBMQnRxdEV3P3F5dHlKYFlLcl1McGx0VHFZbkFNcHR4cGx4YFVVSjxKOz1bSj9qSj54Zk9xZ1dad2hbQk5qYEFhcEdbOkA+P0I/X1JKdXlYY0JAV3g8O0ZXY1JGaVhmVXlsW3VJc3JtO0M7P0Jbc2M6d1I6W0ZCS1VqQWVhXFxKWz5ma1Fab15cXDt2a01wYXVZZ1pOalpOam1vY2ppZnVRPD1leHVpYT1jUjt1Y1FndVtEW3NjPT1jOjtFZEdZWnV1bXN3cz1jOjtDRVt3dWFDS1NCbWllclV2WHVYcUhTZ2xNRkFyRlR5P3RwP1hKbW1NRFxcVHVxUzphV0JEampgV0pddj5ha0pld0VIblR5V2J1TVI8eW1Va3lsdF9kUHBATj5MSmA8ckN5TFA9cVJETkJsanhVWXRZV3dJdHBVTD5AUjpAakFUbUBsSm1cXHdxXVhORHhpPVFFXFxWOlxcdnZkSjw9Tjo9dj1EWjpXalpmcDtwbUE+Ynlvb2lOWlpeb2JxXFxQR1pmQFxcZGF0Q25sVHhbSlJpUXJIV2RxV0Y7O0RaW0I8cUI7PWRqO0s6YXBhWWtdWU5vaXhacHRTREpKPHlZcXlFQVE7QHA8SWtVV2pePmZxUFpXQF5cXF93Vk52aWloPFFpQWhySWhsbl90Pk5yblFkdUZvTFdgQkBkZ1lpYHdtSXdeWHZcXDtRb3dZPj9oRUtSWltHSz13YGdYTHNGRktyWWlidGd0RFtYYXNCSj9Wb2d5XTtCPD9MQkxYW21samFqZV1ORkxKeEFPTml3cF13cmRXVWlKXFxweElASkJMYjphXj9oZWR3a09YXkZOajxndXhJYmo+bW94aT4+YlJReFJObl0/W2ZQaDx4eHBwWkpoZVZuY2VedFdQXWZXWnNgaz4+YlJBeHZ5YkFBPHlJa1lFQztjTmFDPElTP09pV1dJRD9EOkNCeUlGPmhuRExwbnB1ST1NPmRqdGhRUXhOUmlteTxLOkBYPklxSlh1O0FwVEVqZ11YUWhTZTx4a1h3bXhRc0RWWT1wdHVvYWF0SGh2OnVPRURKSmxQeXRMbFVRUmx4YlxccldpTEpcXHRGTHJCcVk8SXhdbXVzZU46TEo7WFJCXFxqZ1lLY01yWlxcdU9cXHdIPU9OaW9UcVFqPHU9dXFKPEo7PVtSX25aVnhgQFxcXV5bTFJId0VteWdJP1RQcXlLO0I7PUtSYXFKdVY6SVdwaUxhbExmcVR3bUpsSGxdbWx3YUpaXFxKPFBSRnlXWz1sVEVSPDxuTWxrW1RwZll2W3Bvd1lWeURKWzxMaj1XW2xSUlxcXl5nXVN4d2l5WmVweElEO0NGSjtmSlNmdz9GOzt0S3dETEVmREtiYD1nd1lWeUJqR1Jba3ZJeXdgW0NMTEw+VFJtRXZQXFxzVHlRcFlMOkBMQlRtTkxWeHFPOkFLPWBVcjxMPlRKTUxxRkFUdXlSOj5cXDxGWjxBbkdGYWtfXzpXXz5YZm1gdHhJPD1iSjtDVWtEWkViRlNWPkdSZW1COl1ieEFJbFNUZ3lFOzxSQk5CPUVuPXNwd2ZqdUNnSVhebWZUeUlwSUxbPExwVExkWExyVEpIVUw6ZHd4XU1zUXBJVG1ncHhJaFk+PFhtXVV2WXNLPUpVbGo6VFBuSFBcXEBuW0BYcU12dGBQVT15XXVNO1xcdVh0TGNBb0NcXGpdTUttQFJcXD1yY01LcVVRamlWV0lta3B4SWhpSlBhPD9eVnZlcmdaZW9hQlZqTm53UF9hUGBrZllwYFdndXlyeE5aSk5aO0d2T05wc0FeRk5hcVFiOklfO1hhZ2hpc150VVlqOj5bSlJKTnRKT2JSXltIcWhfQGhJXmlacGN0cHNHUWV1eWI6QklrY09LSUA/Yjo/Vkg/UkRJZkJFQmlleEU/R21bV0FreElIdl1lTldETkpcXEo7TXJaREpKbFE/RFJtdFViRXB5PUpoWVJadHA9SFI7bUxeXXVgbG46eHBMYHBQSVA7PExqcE88PU5WRFVqRVVfXFxLPFBKWGFvUTxUYD1XdXlyeElKckFZZkFYdTxNSE1POmFzdlhxbTx2bmRKdmhUcHlSbWRXQWx4STxyZVlWQVh1O0FuWlVQRWxKVnBQeHBtWm1rXWFOTll5XkRKSjx4R0ROSlxcSkBUS0dZcE1RclpUUjthSnllWXVNWXV5UE5VeV1ESko8Tj5MSlhmZFA/W0tfaFhGbkdfblNvdHFPdHdHbFU/cjpGXko+Wls/bDxvdWBWd1RZdGFwaT5QeDxRa3dXWlpeWjxuXUFIb0pnXFxUX2o7T1tzV19nWGddVnlVeF5ZaXJ4SFpKTlo7VnNOPmo+SGI8Pm5NWVpaeGBRbmQ7cGFgQHVxPmo6Xl1RX1tLVlphdlxcdm9kWWl5Z2F4bklcXERGaWVfanlAZGZ3YHBpW1o+XmFRWkBAaztYcFJneXBAaERXc113ajt2bmNedmdIXTpWamtobVJ5YDpAclteWjxQaktxWmdHd2ZxYEBBXj9gcXl5eGtBYj4+cjp3ZVZHXFw6Rlo8Q0o7SGZdRUBDRUU7SG5zRHNDYnhdd1V3Z3VRRTs7RFpeWl8+W1RpZ1JoXFxlYGhYRmZmPnI6cW9VQWJQcXlTRnlId2dxeF87PlxcWl5aPF5aTHZdRWZGSVZqO2Q/Y1lFb1RXW2ZoXVJtQWZmc1J0YVNbTXRmZ1J1U1JpaUl3bXZmX1ZFcWVZbXZGQE5eVHlsPW5ldXl2SUw+RFs7QHZDQXJkPmpNR288aHJDZmBLR2g/Pm91aGZHWG1YXnM8cGBfSGlTUVxcd2hkVGBhdGFqZkF1c1hleFl5WXl1XnFvdXB3TlBzT1BfQkF2O2d5X3Bib3lqRnZpcV90UHhfX1tMUlhEdG5vb1dzT1hcXEFYeHhaSFdjeGBRYHRrSUtTTHhMWXhMSEA9VFBXSXZzU2hFd1NZZlVfS1xcXWtuckxNaGBlc0xbaEVDZVplV1l1VUhXRzw7RkpbVWN5UnM/aFQ7dk5wd3lMWW5Bd3J5eWV4WVVpeEpAVEVpbG5FWU1MVE1ZamtgeWNkTG5ZbV1wcUpQeUdUVURpbHlsb0J1dVh5c0J1cnBpV15gVkNRdmxQV29RVXN1VkBZeUxVeFtRV0w9eFhZWUZkWXl1cGhpWV50VGhgbWxRc2JWXFxHd2dVSW5VYHFxVmhIYHBoZ3VWT3F5ZnRTT2BgT3NiVmRgcHFlVnl5X2FiZmdUd3BqUWlzb2VTVl1jZnJEaFxcS3B4Z1dlVU5peUdrTGZyXk9yPnlgX3ZmSGFdbEFkT1BrO3ZbOlBfPmdadXdtcHF2clA+P1JqRWlIV3NLYXQ+S0JjW0RAbVhpYUlMT1ViPUNeZXNaV2k8b2lNdXRhZXZAaWNVS2hoZXNsQ0djUUNDRVhYU1dTYVNYO0dVZVNgZXNYd0ZvT1dQdVNtWXlJW0V2W0dLRXRVZVZkYXZDR2Ngd2dXdWhLbWRnc1VjU3JBb0NOR3Rpc0NzR0VQc2VkYUZzT1hAR3dUSXJvWUVwU1N3UVlJX0JfZXlZWVRac2lYbWRTc3dHVnd1YWc6UXJZSHU8X2Rkd3JPSGU9Pm5kb2RqR3lseXdsSGhXeW47R3l1d2dIR21oeHhFeG14b2Fodml5aXlxYGtWbmFCb21jcXVPT2tRUG9admdHb2tOcG9XT3VtT2pAeGVLTlpbQWlIR3FnXl1kQWBSUGU7d21bVmJ0c0hpWXFtZz51Z2FJc3d1WFxcd3RNUWheRXdHUXJ0R1Y9T2lDb2ZJeVVyX1JoRWlfcURjeXRhd1JcXEd3d1l5b2FkQ3dnR0Vkc1VDUFN5VktCXXdpUnFGPW1iR29kaXVpVXlGcWV1c3Vmbk13UnF0TztJQXNmclVnc0dTXUFDUztJYl1idnVpaXVpdjtUdHFJeXdCOlVIPjtnTm9jZWN4eXFEU3FzUmt1cWNpaz13al1jdl9JdE1iaGdVUGVzREtDT1tpQW1ldE1oXW91UElFbDtFaUt4VmlIZTtDTmdyWXNHTVl5PlV0YGNDXz14Wnd2X3F0VVVIQllCSVt1WTt4YFtCam1IdGtiOktWeXF1PElXZ1NZYktJSl9GdlllZFtlX1VzcFVpbm1ZbHdmZnF1bWlnVmdJcW1VcGV3eHFSUUFEWElYQW1IVz1iVWNDXFxFVltFSV4/U1tRUkNvZmlRdW93UkRnRGdbZ1lVU0JldXBrR1RdZkpXd29paXhjR0VdU0ZJVGNldGBXaE5hWXJPaUZlWW1NZk5lZ1RFVVxcc0ZHRWRoZ3V0dWZycVlPcXRLRVRnQUZ3Z0N5bVZIO2JocXY/aVU6W1NyY3VRR3l5SXg6SUZzPWd0ZUlTYWhzS1V0ZUlVaVNYSWVwUWl2S3hCZVNRPWJUU0dJYXhmeXdLeVhHR0VVQ0dPbkNoVENMc3RQVW9JeXRkeXVtd3VZdG9la1l1anBpV15ga2VcXEpkZFl0dVhRWFhheU9CYXNTVVhzRFU9QExCXFxKPVh0ZHVKPUR5bklsbnByPFxcT1FtcEZgV3VRVldgTXY8WVJNT1Flb11EWUVcXGxOUE9PUWc9eWpdQ3drZ2pbU0VxeXd5QlZFQmpgVk1va1pGaW1xamFAeVNgaXNReGR5dHdHaGpBdEtGbWtmeUdHbWpuZ15wb29PeXJHdFZmZUJ4aW5AeU1GdXRod2VhZml5X2RRW15Qc0lub3NpeFFxaVM+d1h4cXhwWjthcGQ/Wk9Zd3hwc3lQb0NoeV15a2VOcGNneWFPeVBPb0RWZGl3Y3dnY2BoY0NgbHN4XWZeYFZOcV1RbU8+b1RhdVpHa0doeWlweWdQYT5nXk9AcENGWlp5Y1ZxW0BOXFxObmRGWGVRUHlnT2Zpb2dLVl1Td25BT2ZISGM9cXJnYHZQWWVpZ3Q/bmhbUGJxUXNLWWZ5VnNlV2xgUGM9cGJJSHNgaFtlXmhHaGVUb3NZP1FFZWxjTlVwWV9Rc1lQbGNUVGBgTHlUbHNUaHRpaFk/b1hwcmRoeVxcT2JkcHhsb3k8aHJsSXVEeHNNaHRgZmpfQXNoeGlZWGFxb3VpVndLYXdnP2VPYXlvYHFdYWc6eXlIUFtzZ2xlZmxRWHlpWV9TQGd0d3ZIZ2dfeHNtV2peWWpzV2tGZnBnZmhRYW86R3F0Z3hUYHFwUXlOR2VyQGdDYF11SXdRRnF3cXhVYXZLUHVJVnNySGBdXmhnV3BxXnRqVmJjZnl1cXJvWGtreXlweWRNTlpaRl5kT1o7YGREVmRhdmo8d2l2Zmk+QWc9eHl4WVpAQHM/WWNRYF5kV3RER3dzYWdxdmRbWWVJd3VIWWR5eWRNaXRlcWI9UGREd3VpUHVLR29bTmZMT2hvUXdPd21VSWVjcG1GSWNXeWRkYGp4aWlmeW5ZaGFETnVYYFo6V3BQcXk/UHNvWGd5R3dKd21OUGdRSG9UaWxoQXVrWHVKeXhyWGdQP3hReWV5R2M9cV5nYHhncHlARlxcb2d4Z3F2O2Z5dVdzcGhnWVdjb3hqXU5kVnF0QF9palZ5V0ZfdUF2PUZ4eXFrdUljQnl0YF5aOk9jYkhbPj5sYD9dbnFubUFrYWZheFZucGBpW2ZkZHZkTlBac1l4X05teHd3d2ZabmF4Z0Z0WU9dVHhkT1l1cW5gcG5gU2FoT1dkcU9zR2lfWVlsYXZjY3l0PUh3TF93aXhgYXlgUW9jaVByWU9nZVF0Q3F3eXhvPmB3WFl4R3B3S1lvVEFtQElkcWB2T2dbWEl4TXZeR2ZpSVhxYGdaTXFuSWFsaXZweGdeS1ddUW9eVFZxbElrcGZfb3dfcEl0XW9eRGFtU1d0d25taWd0bj9mS1F2X094R3lwWVl3eXduPnlsYF5aOlhhTmFaPEZnTm5vVlFecGFxbUFrYVhieD9vWFhxeWF5bXljRHhvV3dxeGdleXBnPkdvTGdeXm52YnljQ3FuUV9vUm9FeUpPdl9YT2NuZlloSndVT3RQUj9QWHhkb1lYSkFsS190S0x0UVhcXHR5WEtPXFxxcUR1ZU1vZ1huTE15eFFUWHRKOk1XeWF1TWVwbE1vQT1wVEx1X3VySGlRbG12ZklRU2V5c1FRY2F0X3hqaE1XWl14cHhxZG1USmhRdW14XlV0T2lPWmV0eGRUR1RWbkVyb3FtcnhtdUxwX1V0Z1FVcVxcV0JQS1JRcHNVdD5ASkJVS29EajpISnB1TXU8dE1BalZwVEdBbmFESkpFb15RS1tVVXF4d0ppS2xZTEhYTGJQV3dcXFRbbVduSWtbTG93eHRAaVNVXVhqWFNScWpqaFlVcVR0aFlYYXRjVVBcXHlyQ1xcVGBgcW9xb1h4cEhkd1RVeW5wVU51ckx4U1Bob0JddGg8WERZVXF0V2FpUGVNdWpEdXVpdE1FVFxccXZRQXd0XFxQbHBNR2FZdkFPY2hYSERVcFlVaHVteXFTdXBwZ2h2XFxpblJlUT5dU09RTW9peG5kTHhxVXJtcXFgWW9pdEhFeXBZeVlcXFl0bHVPdXddeVF5YUFJeURXaXc/ZUNjdGt3QkpLQjtzSVg/WHNDdXR5ZjpNSExbVUBFaTxHZXRNVkJlZ3RjU153Vkl3Zm5ld1Ndc0tZVnRJV1tLd2ldRndNeUFXSWRbYkdfRW9rVVBhZ1dBRndNWW91Y1lvZ1RBRXBzWW5HaEZXZWpRaVhLVz1lYkh5Z1dFUmZtdHV5RURVY2BpU25VeWhfYk5VdnZxckdPRl5lcmxpYkBveWhFeFxcZVJed1Jpd3ZvQWhwS0d2bWdTdWhLZHleWVBjZXVkSFlESEpwZXRkaUhEdF5lUDtwVFJseD9ZdTo8b2Z0cVZ4Tj9BTmJwbnVwbEx5T3l1U2d1eGhpdXRUc3FZeXhddGdpUU9VdUZhTXNMcEVFdExkdm9RUXFMcldVcDx4WXhJeVFNT054WUptTkZYWXM8d2VJdGJVTDw8ako8Sz48TkJMVFU8d1c9TW5McFhxTWhIVE9tcUJQeVZtcnlQeXRwS3hFcGhQSmlUWXBZcW5heFtVUkBMdzx4dEJQVF9Ua0Vld1RodF9tdXZ5a0xkajplVlthcXlBcXh4eUdkeWZBdlNZWGBZU1hBeHZsb2lxWTttakhsTUpAd3dNb3dEbUxsTWhdcWBNb2JFdFxcTFBdaW1DUVlCUExPVUpicEpFcFlbSXl4TFBgXVhsQXh0WXNrWUx0WHY7YW5CSVBjbWp5VFE/PHJyREtlXXk8ZFh2RW9YQHZPVE9OaGt5eXFkSFZQZW1wXFxreERYPWVQZTx1dWlzcUVzYFhvWHlxUWxPVk1sdGhoRE55dGBgTGFqOj5ePlI6V0NvS2JaTXU7R3VXPUVCZVdXSWc7R1lRZ0dTd3ZtYWlGP0V4O1NkcVJuc2RnVXVxPVNvT2dPV0Q/U0JvVUdyQ3ZnQXZOP2dhY1Jed1NZb1VAa0NiWVdieXdfW0VAWVZlXXhUYUhZeUlnaXdTT2lgR2d1dWhoQ2dAO1Jld3dhbXV2S0NoO0RBeWRkSXRVeWd5WVN0b0hqd1JxcWdAb0ldcWhTRVJ1b3RsW1hyQUVzdVlwYUl3a0VeTVRkZ3NjTXQ7Q3N3aUZvb0Y+O2JxP3dSS0JeR0RoPXZXRWJpWXN1YVlLVWlQZUNXcUNJZXVQa3hAUXVvWWVuRVZpb1drUXlVSXdtc1ZfaWVTU2heXXlSSWRsVXVnRVVXc01UZHdPbVdOUFledW1kTVRqRFZcXFltdD1YYmV4Vj13bGlsZEVzUGlXWUVzdnlLWFlQdlVPb2xvZ3VuZG1USkB0bXlzb1F0b2RzZEl3XXRTbnhZRHVLWGFRYW13PEB5cGhPdlVzPz5aVmZrQ19iO0M+SUY9eVVDXXh4ZXRmP2ZTVWNwbVlTdWZoUWVKO0J4P1N5S3M/Z3Q6O2lhb0NLR3Rdd1JBeXlZZXlVV3JgY3c8c0ljUVlFPWl4UUJ3b0NVcUlLUVNJO0RmaWNAaWNkWXdwTWI7P2RncXhVaXhneXZsZXZEQWlHc1lQdXVxX0lnR0JGRVd5Q3hwdXlKZUlGeXRpPWNMZ3ZZb2dOd2N4a1Vgc3V5dXk9X0luQVRfRXlqbXdGQ1liT1NfU3JZWWZkTVddV2ZxT3dbcVZYb3dQSXl5WUNGYXhjaXg/S2J0XWRbT0Vpd1c7UWZfS2hcXGV0VEV5c3l2XVFZSk94YW1laFFEeVtzS09XUD1mPD1XR1FlT1FUZmFFTl90PGlSRWV2aklkUkNZc11yRUVzWFVURz1DWD1Zaz1pWHlQTmVuXFx0Tlc8eT9Yd3JUTUdpd1o9ckVRakhQVTxhcEVcXFl5dVF3XWJReWxLQG5ed3Q6Pm1qaWF4QW9fbmRnYWFHcGhgSWNFWHFgZ1pxVmlVdnhLeWFjSHhuSGU7T2dtaW1uSFs7PnZpXnVIQj07Q3ZtaU87eVhfY2s7d24/QmJ1ZGt1eXZnQzpvd1hZRWRpWTxhR0dRQ0xrSFs7eG9Jc3BgVkFpd3lgbGg9alFpSldYVEl0TVlNS3ZhcER0WHVob011TnZkeD15dDo8d2l5dzs8VmJBWUV1Ukc9Tko8bjxsbTo8d3g8eXJkbmA9dEN0U3dBeGE9WG15WEFFTDpEb11cXEo8bFFQTFRmWExpWUt2VXFASHJOcXZXcVN1P2JOYVVDUlo7Y0FBSHFXYjtzdUVzSWFfRUBFYlZtV3VfdWBrWDw9eUVbVDpbQ2B5eD1bZF1ddUhrQlp5ZkpvdmVTZ1FhQ3RjZnB5R1JFQkc/ckFbQlhDRko7eD1FQl91eFVpVDthZ09HSExrQmdPREpnd05xeGlbVHVRYk1vY207Yko7Q1JBZ2pdZkp5Q0Y9RW5TU2c/Zk1PV3lRUnN3R0pbQjtLUlo7VmRrU3JnVV9tYjx1dWZHVkpJU293WVtfUUpJVD48Tj5MSlBATz5kd049UVNob1ttcVNQdUVMUWNweElpdWx0Sm1FVUNMajpETko8cGY9WVxcPEp0eU9GXFxqbFxcS3RYeXhVcVFxeVNIVllwbl1ASzo9Sz5cXFNBSUs/WGxTcWxrXFxMWz10Q2hweW1WdUBOWlhuQjxCdE1MYG9WPVFTRVdGXFxyWldqSFd3dklmUEFaYklncnZaOj9bPj5fVmBdSj9uQE5fRk5hc1h4QUhtVWBaSl5aO3ZhV3Z2dkZgPj5bVkdyY2duPVlzSHdjYj94bkl3XWZfaUFhVWB3d1ZzaXZ2a15dPD9bOmBzXT5mO1l2VnheQEBaeGFmT1l1PHFoZT5kd0Zdak9hX0BaYmBwQnFoQFluaWFeOm5qcEFlPT52c05iWj5cXDxQYk9QYnleeFs/ZGd2cHVAWlJgYEJOYW9JdUpxZllvaHROS0NGSjtIb0VyPkVmaW13ajtXYWd3Q3FpOj1EPjtDO1RsP0RSZWBMRm1YSVxcUVZRUm54VTpcXG5dQEs6P1tST3BaaGBNYXlyRndLd2Y+SGJ1X1o6T2paPmJCXlpmVmRqRlxcQmdza2B3Pl5adWFaOjtGZGpGbVtAZGxPeEpRXUN3bFdpdWo+YEN2ZXFYZ2JfcF1xaTpnW2k+YkJeWjo/WkZvcFZxdzxgdWx4dWxXcUc+akB3cT1oeTpYW2k+ckx4djxuWkVwWjx4ZWJxalxcQXBtT2g6XmBMblxcRnBpSFF3ZXFzQ1Z5O1ZaQ1daQHBrTW5aRXBaRmFcXEY/X05meXVgc3hgYW15dE1IWmFIW0FvdjxXeTo/clJOYlpiYj9UXFw/dklrWUJxeGB3VmpNVT1rU21hVFJLYlo7UkJbQlpJVFtfRGRPQkNxcz9zaWlnaHltWEdTYkhlaXdLc2c7Vjo/REJgVFthTUJ5d3FYWTpcXHhuXFxxc1lRUj1ta1xcS3RkcXddTVdkQjxWRFFKQ1FzO1R0RkVOYTxUb3hZY2hXQVVPPkhSdDxTclR5UkFKTGFRUDx3V1xcSz5wcUpMeHFJVmJhbDx5UVJJdklZdUpFUmk9WG1td2VcXEx5PVhyRVE+dXdaPXJGSVZAUHJIaXlsTG1fPEpAaXlHVVBPX15qQV1VeV9iSFxcPlh0S05aO1ZsTj5jTm55eGhaYFdgdlZcXFJhW1s/bDo+XXZZdkg+cGZJeU5YdTtBanNPWkd4X0FYbldZW3lhdDxZbFN3bG0+dXFIa0M+ajt5YWhBWkV2XUFedUhuWmZgXFxUPls6SHNRSHRGWXNTXnM7dm5DPmo7XWVYXj5OWltuW0NuZHRxdUpfXFxIcWZkV3lRPmtqPndJWGU+YVo6d3VJeFs8QF5WQF93QV9RSjtQdFxcaFRBRG1zVHc9RHdMSW9XPVdwPXhGRVZsWFdxeVBMcXFnVVd3eXlNeUZzVztPZEx3SHZET1VteDtUVGZYTm89S0hwTXdMUXh5eWR5dVhgTVBwWHdocE9QVXJZcGRJV0Vlc3FNdGdpbWpVcXVNcWdJSzpweXVsd3ZIUXBBSmVUWGd5d11YUGpQTUpgUG5EcU1ITj1tSnNweEFJVT15dU9kcF9ZU1NFcGxlaz51V1hlV1RodkV0c01YVXRteGJxTj1xUkZIbHB0a3FgbGZIVW1AdWw8T1NpWFNgd0xsV05RWHJYVUhBcWNxUlBobDo8d3lpd1pweUlRUT5YVGpVUVJEa3Y9UHVpbV51UUt4b1hhcVRtV0pEVFFZbmlRTW1aUmNkaFRrZHRsbHhjaWVWWGF5R2Jgb3NUWGdkUHJCWXRqd2ZBQVpaZ3RweGlYcWdtd2V0T1xcTT5aPVZoZklaPkBicm5kQXB4Z09sd2FyT25gV1hheEZmcllpSF5ddl5fS0d0VWduTXdycHBuVW9ydU9bXnlsVGdgZURdaWlTcWRGW1JwXUtmUXRweU9SRVZKQFpueVxcWz9qVz5odT5dY09tcXZpa2B1b3d0V1B0ZkhnPVdyWUhlbGB4TWd5dUhmPWB2b3hqUXlvWXdsY3l3SFFod3d3QU9hZm55d3l4b0dfTj94WEZvUXdwcGBjV2BhS1lvc195c3lsXVF4dllbPWdmXXFuZ055cGhoPmd5dE54YFl3XWl1eHhxQ1d2QkZdcj5nPmBpeXhHc0NOb2lJYUg/Q2RNU1c6Y2VUa3lWaUdpTVVxR2NTdVQ7WXVpQ1VpP0Y+S3JLYVRCTXlwWWl3TXR3SXdoS2RjU1RgU3JZV2N4UVZVX2I/Z3ZKT0Y/V0NfS2V4eXhZeVlFVWhQY3deZXlAZ3NMQWdbZVljUXRzZ2leZXNMZ1J4XUlqPVNQd1l0T3NlR1lGZ2N3aVRkZUlMYVJoW1V2P0d3UXl2U0c/VWNOS2RvV3dxQ1NNb1ZnXXV4bWZsZWZES3FnRGRUcF4+bm5OXlpVb3Vrb3RKeWZmYVxceGFtWE5nTFFbPWBvZUB2V19qS15aOz9bPlhudz9haVled1lxXVd5cG5dd29neXF5PW5vOj5lakZ1bnlwWHFpSXdaOklkXXZaRUFrW3dfYE5pZ092PkhkWGdzXV92XkhvbF95Pkljc0FpS2Fdc19vX1NJVVlkSXNIT3heWXR3Z3ZVd1d5d1NrWUg/VWNQa3R5d1lqZXNhR1VvP3NwbXJnYXhfeWRtQXVsO0JMPXZ0dUVAQ1JKW0J2Y1JVP1JyZ1hdcXJHQ1VyP1dDX0RoW1RKTVdOdVlCWWZJcWV5P1hLTWhhdXNYX1d0T2lvX2Vtc1ZSX0NYW3RZQVhqO1NFeVZla1RFbWl2R3ZrSUJqa1N5b0l3W3V4bUZmc3JHSVl1c1hoYWljU0NcXHNYOztIWz1EXjtCdFNHRktZdG9JSztlb2lDSktCW0FDVW9IQVVzY1d0YV1mXXVicGtFeW10V2l0bUlmPXlSbml3UVlVaWVpT3lXbUlZZnlmWV1mXkVzXFxJc2B3ZGRDVVxcY3NNY0k/O1dqVXJZV2lwYWNOW2l4Z2J2P1Z2U2RSSXM7PWRvVUM8PUZWc3Y9d3lXUUNoYXY7dWdaQUlzT1BNQHVSQVVNcU9VaW5SeVVpbXNhbW9WYFdiQUxARE08eW1hWXdnPHRJdU07eHhbXU1aXFxKPHFMeHV5d3lLU215Y1FTd2xyWVBxV1xcd2NQVF9QU0Jdc0t5bUxoU2lEVHZAbWhhV1xcUFFCQHlFUHdTXVlaQXJbYFZNeVl2PFhKaXdhbUtZbGtLeXFFdXVZTWtHaE1aUWpNQEpieXU6PFdeZXlLbEp3dXJdaHY6PUs+WFZ3TXBmZWpWRXFseW5uTXdqYWpRdW1RVXZqaVV0YExldFJcXG1rX0xtaHBXZ3RVckBYS21VdWV5Z3RxP1BqYGVTVURzQ1lkZUlpSD9jb09ia3dmQXFzV0l4bUlrWmlqUkBxZ2FjOl54Zz5aVGZlUWBqO09qWj5sVG5tV15rTmZbdkdnPmBteFZoQG9mR2FtYEZtbXZmcEF5bVF3cFZvVFZbakBlS1Fya1lya0BfT1ZfTmhsZ1d1cT9zdVlwYUlzaGlhWVFjZnlveVBzeGhpeU5zXFx5a1FYY2lxcT1mbml3d2FveXl3dkZPeFZ5ZXFPc09oX11WW1FmP0V2QVVTbmVDYHlzeXNFUUdjTW9mQnF5d3lCX2FzU1lYTF1nUkVkXnV1a1tZXkFJQ2FkY1NmRm9Zcz1jY3N0eVVpW0d1Xl9WYGR1eHBxZnlwVnFuSDxQY2RRVXR0UUBuST1KRmVZd2hucGFTXFxlclV5ZkBPc0lBXWBnYTxxW05ZcD1Ib0NeYmxOb1BnY3d2eHFIZ01wanQ/bGJ3Z05QX1NfZWR3dGZwb0Feakg/Y28/W1NncVxcR3B4X1xcV0lrTXZeX2liUT91Zml2RHZpZHhqaVd2QEdcXGt5d3VgaXN5aHdZYXZeYWdBcF1wcl1ea1RhcExPd1BJb19WdGB4cWFYWmZQcERpeHFPZGxZc2tZXFx0X109cV1JYWFjT3dKPlxccV5bRk9kaHFuVWhgOmFyP0BdPD5mWk9aWnheZUltVEhiaUF0S19acGhhYWF5RUltU0ZaXFxQal5ndUJwdmxpYk55dkxnb2RnZklwYXVQZl9RXWNndGBYcGZZeXBXcU52X1BfcmlYeG8+Z2pZc3RebVhGYXJ4ZGxwZkdRZlNAXFxKYHhvVmBXTnFGXnlWTnk6PndjcWhbV3U+cGl1QVpbbnVhWHRLV1xcQkBqY2hlZXBqeF90VkFzS1d2d255ZlBpXFx5YnVxaGdoeVhyTXlWSFFzdVNIYEVzckloXWNTUTtCd2NHXmdzTFVFO2V3WUdZPWtCb1NiO2dJUENVcT1odklpQU9lOj1yVkdSOkFTW1dERFlyUU91eVNYQTtScEdlb3loUTtEWmlZU09lOj1yZmdCRUdkPE9JTmVIS1t0eElVbTtUamtyWndZUElmcXdyaTtWcFtiOj1yW0VSOnl0c2VWVnlJZXlXcU1yWnd5PT9GOj1LWjx2Oz1OTmVwO2B0eEl1aTx5TXFVSnlZZXFrb2VKPD1OOkBsPkRqOm1MOl10eEl1bTxKVGRLa2FqO1VYVnRqOkROSjxOQlxcSm9cXFBKVXlhdXc6PFNSXFx4d2VtS1xcSltFd21NTHdYajtUd0BEajpleFBsblFEb21QSlp4bnVBSnVJam94cGc8eHloeVBwdTtBalNUV01MSk89WHVReFdcXHR4SVFlXFxOSlVQUkxtXT1NQmxOPD1OSkxyajx2ZUV2W3l3OkRTVXlRPDxOWz10eXRyXFxUdz5cXGo6PUo7dE9OXFx5Sz15SlV5QT1KbnlSUlxcSmVhSj5iSnNiO1NmP3dDb3dZPnB5RlRqSHVvT1xcbl1AS0JEajpMalhsSnZIeXhMV3lBW0NWaj5GYkpKZj1MQFxca1hxTGBweElASlJcXG9FPExhcGo7bWtdPEw8REo8QVJCWUtBYG5tQVJneU07PFBKRW5BQFBiaXU/RU06PUs+PEs9REpjPFlGYEw8YWp5TEpaRFZqXFxYdUFLSkx0d01sO1FuO0ByWWB3PWVVPTxTcllOOkxta1xceHJEVldEcGk9cj5ZeWBUaj9VSnBVSzpwUko9S0s9c0FUV3lUWHRlc1pkTT89VmBdajo/aj1Gak9QW18/XFw6Rls9PFxcT1I8S3JNWT1ESkpRd1s9dENFUko8Tj4+Wz5GWlV4Wko+WmdwXFxAZnd2R149d2tbP1xcPGI6PXZxeWlpXWhheUc/b0M7O2RqO1d4aXlDO0Y+S0o+bFVRPE5jZUxoQE46TG1nXFxLdFVYS1hWUWhWX0FtPkROSjxwc0VWYHl3akxWbnB4SUBsPD1KblBza1h2TkBQQj1MPkROSjxwUz1PQmxWOlxceG5ATF9xcGpESkpAUGJhc0VsUjpATEJcXEpjPGs/UFA6TFVfRV06RmJSXnZcXGFbPkBiOkBkWklyWWFocXloR3B5Z09qRUZaSkBgQmlaYD5iQl5aZm5cXDpmeU9Od2JIaVo+WkxuWkd5cFZfWjtbPEdqW1FiR3lteXdsPHZqOj5jUl5eQk5qSj5bOmFiOz50VVBaSll1PHZaPj5idW5qO1dvQUZiWj52YVlxeUd1bUFaTWFqPGB0RG5feXd5R0Fkb3FnYFdlPVF3QXFjanZsPWh5SUZaVnl0TElkTT5bUmB2RGhhSmhweW9xUE5uPj5iUkd2cmBwXVl0QT9xZ15rOk9ePk5aW25xZHZbUFd1eU5aSEZaSkl3UUZnUD9bPWBwSV5aWz5cXGo/c08+aWJYZ3lBd2deYzpecGU/XFxuUGhSXl5CWlJBYVJeamRweEludU8+clpeW0xeWjs/Wz4+WzpIWnNxaV1mWlA/cERWXWFmXFxuXmA8eV5GTm1zXltseGE8QFxcQkJDZG9OVXlhYWpaPFNnUEtbPXRERFZKcE5VPE4+XmdKPlp3SF9OUGJPP3RqaG87P11Gd2ZjaHlRPl4+YkNQSmVkZG1PY0dYWjs+XFxYYGo7V2BYVm0+RmJKTlo7QF5ZYGh3aWhvcGdQUHV5dmVQSGo6PlthYGo7V3BOUVtMXjpOakpeW3ZnWz9uZGhJeWV3djpfYjpeak9ZclpWeWU+WztAQkFWSjtjaVloTGV3WWdFaVVDTTtCW3lnamdEZEFIQnVSSztEPENCTWdCPVNpSVd5YWV2PG9iOjtDaVVyUGdUdHNjSltCOz1DPktSUjtCd0dHPl1zWD1CbGdlO1NYQEdSVHlCPHlXYUFzeUVJXUtiOjt3Tz1IQmV3XldXUUFEX2VmX1FGOktGUlV5Tz1ncElIcElYckFpeWFmXW9GSltCOnVJQDtSZXN0eEl5XT9CXlxcaldJbWNwVkpoWVRscVxcXFxKPEBKYkl2cT1RY0lteXBUVm1eOj9hY15bTElkPl5qOj9eQkZaQUlvb3hpUE9fXj9bOkBgXUNHQVhWO0I+P1Jya2RpY1dVYWVQVXlhZXQ8bWI6O0Ntb2I7QVJRUUNMSVxcPEo8VGtNVVd5YW9QbG5CPGpqTVlSXFxOQkxqSj54TT9hWnB4aWZ3X3FgbUFdY19aOj9tc1FyYz5kWz9sWmJKPHg9P3djaVxceD5bOkBqYXh2RkBiPkhicHlpcl9oSGZmVkBiSm5bTHFxXFxvdmpGaHlwbTxncGg/WzpAcD1JaWM+ZHV5b094cnJhYkpxeEFvckNeWjs+YG9YbG1mcHlvcVFeZz4+YjpBdXNhXkpoZ0BGcWdea05AXFw8RnZiQVpCV3V5dndETmBlaGp2P3JjR2ZKcHg7QF4+TmpNaG9RVnZxR2R1eXZzUWlHbmRbUWI6XlpbP2xaSko8U21hdmBpc2pkSz5MS3lxSm5MSlo8dllAUFI8a0VEVjpAXFxIUFtaXnR4SXlxQHZEZnZwaWZ1R3JDR2ZKeWxUR2JYZl9BTmJaXl1PPlp3RnFHTmJSQHhZP1xcRl5iW1FiOkpieW1qPFNKSkhYSzpwd0hNbU5xeT90V1VATDpESll5T2xgWUNUam54Wzw/Pm1COnVTSW1nanlVO2VSOltCdnVJeF95T2tCQ0tKQlxcal1MSlpkbXlMUlVcXEp3ZU9SPUs6QFJaTXJadHJLPEs7QHB3PUpucXZeTGs6eVdhTFpaXnhbP2xIUF5aXlo8cWRhZnJucGN4X2pCQHZnd2o6b1p2P1p4WVs9YFo7P3hmQWZSV2dBaGhtblxcWkZ2SWF5VUFrOj5bPnZ3clhgbF9fa19zc25pWUh2U0lyanB4Q29rVHlhdXFnVW9wWT5mVnhgPW5jTUlkPl50Pk5yUHZkc2BqQVZoaXdfeV9cXEg/WnZZaEhhYExxXkpYZkpJXFx1QVtvRmpaYkJjdXBbZmpJQjxTck1HQmFHSWBhZUU/REJTVT47UnRteVR3ZzpLeGBVdWxnQzs/dldTY0NTclpjSUBnRVRtcmxVSVJrWEI7YmpvcnBbU2dXRklTdUs7SEFJSU9XdkxJSHVZUnRfQ2ZvQlJleF5lckNJc3hTdU9nV0NbQlhNVV1HR3JXSWBFSXhjV3ZtU2BvRkprVHZPUl91aG93c3BnVlVNQlBBSWlRWEZRdWhVeU1JSD5rdHRDREtxeElJRT9fQzo/cm1xeHZNc2tlV1lbYjo9VWQ7Qjw7Qjx1TUxcXEpnSWpwRGpqaFZaXUpVaUw6PGx0TFc8REo6PEpCRGo6PEo6PFg8bFdBVHJuQVdFPFdnbW12bHFEPGpzeWtVPXVBZFA7QFBvPXJdXFxOUnlYVVRwZ0VKSGlzQkRYUnlWVkBSUmh4ZFhsV1VMOjxRcVROWlV1UHhOQEByVHRUV0BKOmxzR0F4aWxXQVRKOjxKSkxKOzxyd3BMZ1BRQmV1QnB2YFBtYVh0YW1zRG1wZkl5X21zVj91Oj9aWklaaHdaPW5gUXBhTT9tVXl0SHFtdl5ec1ZoQEhddHFtYmhfWU9zRGhsZV9edFd4ZEFuRnl4b1hnUWF2T0FzQ1F4W2FxSWB2XklvTVFsaXZncmBoZEF5PmBbc0d3c0dzUkhgXV95dVFybWF2UHBtd05xQ0FwS1ZmXmhzXWlfX1ZnUGFfZl9oOj5ePkJOT2hJa0laU0J0eXhEbUh3U1VwV3VHc1lBQWVrR2RMRWdcXEVJY29VZ09TSm12c1dSYXlWXkV5YVdnXkl3aGVlX09UP09YbGl4SGl1bGtWVllXbHd3QXdFX1l2P1VYTGNpcXdTaXF3bHF2Tkd3bFNYUGFVc21naVloZj1YOjtGPktCSk14YGlDUW9DZ1l1cmV5c1lCQXNDRV1UbnFUU09Jc01WSm12cWV3dGdjbF9Xc1FTU2tJbj1mRm9Zcz1jWG90Z0lnSE1kZXNWUm9nV1tVeUdWbV90aXd4Ql15dXl3YztkWU1XT2FnaFNIWFltSjxLXlBSb0R3cmBZc3lYU0FxaFlUTWFzTVBXTElUdmBUP0RZZU1YXmBYZ1F0WGhrPj1LPjx2aU95ZXlfc1Bpb1FtVkloQW9gSXhhdWBmY2lzPFZuW1dqdEhrYHhtd3ZoWE9eWVdtXFxGdFlfZ09YYkFYZl5RdW94cV52Z3JvXWM/dWpwbUZwXXM+ZWxndkRJd09hcUh5ZXJgYmhHcV9xXFxjeXRheGJcXEh3d1l5b2FsQ3BveXhAPWhyQ1RCW1RUX0hIP2Q7V2JAPXNxWXlwWXM9Y2ZpWVY9V3JQbVl2O1hCbXJHPVlXbUhpbWNQV0NRc0dDPVVIX3dMbWl2RVVzdXdXSXN0QWVtS3JXVWRIR0NNc3VOZ0V1c1hFcWdXVVlfYXRjWUhMQWlLXWJmP1V4P3RhSVlgR1NBQ0ZKW1VrS1g/QVc8U2Vwc1dLV3VpUXNpc0hoXXVKV2loUWlNbUVnbXRCbXJHR0VbPWlqQWN4UVZVX1o9W05AZ3RJWlFHcl5QW09wbkdPXUJZYEl3aE9geGNZdGVZdXB4d0lxbWFYW2VoZVl3YkNpZ3FoZm9BaXh3aGdRdV1mckRwXFxQeWltRl5PTl9FcFxcY15uRVZvXlBfUU9vWnhpaUdrWFFjQl5qZ2BvVXdxQ09lcHB3Ylhtb19hWXlxUWB2REltTW9zWT9xWlFbaFdpXnlwWXFfVW5hSGh1b0Z3Um5hbF9vVml3dG5wZEZxSEheT05ad2lqYGZdPkRbW3hJeUl5QXM9aWhVQ3NRdVVpUXhyUXNIaXVPU2ZLWUd1a2dSY3Ndb1JveWJeR3ldZ2NfX1ZDT1ZseXRZdVl1T0JbXWhGQWVzc1Jwa1dWUUZZZVdVQVZiP0JTeWl5QWJlO0pSYFd0ZWxEaUxfQXZ4aW1DcEpOaFlkSXNIUHhqZXhkUHRfSW9YUFB5RXJcXEVZYFhZUXVrYUlVZ1lKT1BPUHhTa2lwdkV5bFFzaGlRWWFOVXBVTmlMVGRsWVxcVW1RS1JpcnNYeFFcXFhSUHdMSXF3YHF3ZHhvdG9ZdHZQUFVNcGtddEpxQVNbUGpxUXd5dW5QSWxGWUxuRHdqcEpAQGtrSHBjVXRhTXdlbE9pPXF1UFZOdU5dZFhfdFRpcFVnRW1wZE5MTXdOSW9jeHlpcG51UVk/QVduWVlPaUxdUFFrTG9lbFJeaFdFcW5PTVBaeFlpZVlbPHRcXEhZTWRVQlxcT1Z4eFlkTW5wUndQeGRIbmlBUXlFdlxcYGZ3VmlsSHdTWGBhT2tpXmxoeGV5cF9rSHB5UHM/dnR1V2dRcW9beG5nd3l0d25RV3h2Z3ZEeW1MSF9Nb25OdmVFYW1zVnB4Z2FjZmh1X2NRTm1hcXNtSHRbV11kXlxcd0l5YXltbFF3cnhsb0lwcHlyWXZkbklwYElfcWdjdF5sckBaYnljY2hgY0FkRUluVGBoXmZuVGBoVl5hbl9icUZ3Oj9oSldcXGJXZHl2eWxfZUBfcXZuY1hHXW9eZEBeW1ZudlFYX0B3Y2lgd3JsUVlWZ1RtY1FtO2l0ZXh0U0xZeVBRY3VubmF2OmRUVWFvaEV2Rml5WkVuWHlXTml3YGFqaGRVdGl0ZUh5TWVQdlBvcD1RX3RUaU5tXFxnW2pfdXZJeFpZaVJJc2FZZ1BZcz1oZkRXd21hdmpIXFxdZ15gQXdrRnNKSF49YGFWV25kYHFwRnhPRl9Rb3BGSG5pSWhRYW5dPmRiT3RbQ29DYnBjdG13eEVLVHY/VUtDd01ZZ3V3dWg/RXdHaWxXdkRHdHZPQ3JPcm5PV1ptVz5PQ15JaGtHaENxZklLRXZRaHhJR1Y9aVpfaXVxeFVLaUNJcnR3c3lDZG9XZ1FvckFfUmk9Z2BBQmFvU1dvU2tpaE13RklFd1FZZHRfRHVZV3ZFRj07dT9PSUlpRUNHSWBjZXRvSWVjZ1hTWU5tVHhNaUJtdVJfSEh1SEtBZ091ZkNvd2pLVj5XaWBjRTtPZmhhSF5pU1tBSU95cnFtaXZPeW9hZmJNdDs9Qz53RWJvWFJVRXBrUkNZaU15RmVxYnRxZWx1WD9Bd0dpZFc9SGg/RVtpZV11cnhNZFZ5WGFRSG5xdUxlZkQ9U0ZJdFlPZEd1ZW1JcjxjVU1DaHZFd3ZldVA7VFdRWGhXVWFvZE5DR1xcWVVnVVI/UWNfaXZqSWRdT1hrQ1NCbHl2aUpXPU5QPW9KbU9TeVZIdF1deGlRcHF5YFxcVXZcXHBIbnR2dmNwXlBWdkBhW1FIW11xYkRXbkBoeF94aEl5bl9ndmFXa29XcEJmdGZvckJ2aEdPYTxmamBmXT5MOmVtZmxKdkBRVnV0OmxUYnR5WnhUWUl2aFFrS0toQE09VXdcXFhtVHBxU1lYYFl3amR0bkhXPVVSWVluaHVxWU1xTlRveVRsSlBNcG1OX1B1eGRQTmhqaUx1cWhXX3hxcU13bkhNQ3BuSUVZZWlVd1V1cVhSdXB0Q3FRXXBqckBrVXhUOnFPbGBWQ2FveXVYZ2Ftcl1QPlB4X1FzYll1PklUS3VVUkx5WHRYR01hRGZjdF5vO3BgO3BgTXl5P0huTGhyb2dsX1B1PE5pRWdla25sa2dtVl95a2dmQWlcXF0/Z2Nwczt3bWdAeVZ3dXh2X3J3d3dOcTtHeWBpX1lPc0FZY1BYd1RwdUtXXlhPYG5pYWRoW1tBc0tXdl9nc1RpW0NQbVJecGhndFZ3cEFeZ2xBd01OeGJYX0pvdWpnWnF4Y1Bob0p4YXhBeV1mcmlJZHd2W0dgeE53Z1JlYVdZblNnakNndENCP2lDaUNIZWl5SWNYYXFkQENEQ1lFcXdnVGVpSE1TTnNHRGVTWltXX3NpZVFSUmVVdmVGd1dUXFxfdXd1WGhTclFLcmhRZW5dQkRjU3Q7Qzs/Q2xjdDo/WVtRZl9LeGN5Rm1pdnBZdWlVeHRZWVZpVWtLWW1lVkFpRF09V09VZ1RFVXB3WW9XVFFheWM/SE9HRj1NWWNbVWI/ZkZLRXJhZWV5ZllvRW07dEJPVF9TY0Vld1RndF9tdXZ5Y0xjYjp5aGFvU0xXaWhhaU1tRHldaUZ1SDs9c01XeWhlRUxhdD89U0hXaU1zdUxrVHFnaE4/eGphdUBveWBPdzthSXhpdHFbeGpHUmRteU9BVHBTckBfaVpTUkFza2ZpcXlgTXlEblVIUEZNa1ZUckB1amdgVGNQVEt1WHRQVD12Y1RhaT1namNYcUduWmBmdF5YZml5YFlpWmdvcU9XbEhmZFhGb3VIXFxDVlpmX2VNcGtwaXdYdmNwSV1UYGhKTlpbWWpYZ2lATndYVmZfVmNQQGNwV3VoUXNPWF90T3VXd2hYSV5zVmhASGlvZ3JiaVNqTGVxZGhxY0lwV1BsS1RyQURTV0FrYFFwZ1V5SGRNaGRMb1VvRGVQTHVUeURTV0FxcEVQS3l5T0F1TVBvR1B3OklKd2VLd2lRT1VRZlBZRXhyb0FNSUdnaXdzTll5Z3d4aGdlUkF3amhsSGldVVF3VHF4cW91V2heXXBiSG5rWXBvaE5pTmdfWlBdQkh1QmZ0Rk9mXXFuZ05xVj5fVF9eamlhPmhkTXBbT3FhV2dgY0Fjcl9bTWFuPUBcXEJAWktncFtOd2FgcndnXFxNaHFgUFtaZ2B3eHRtaHVeaW9jRmxYZ2VrTmltZ2ZBaVxcXWhpTnFvT1diVGhgZz9vaVdbaT9ldWB1XXlzaWhleUhzb2hfVVd3WFd3eGFuWFBebXFzRkhldElfbF5bWG5bdW5dcWdddV5wS0hwXXleQ0lYSVNjR1RnSUZzSXdheVVuPWlMVWJheWlmWVZNb0NfQ1dVa3VSP2VdR2NgR2dUO3lyW0hjQUY+S3Jeb0RpW2VXT3ZucUhncWVOaWU+bVV0RWh5R2ZYVWVocWdSY2lzandAb1g9clhRbVBwcj95anFgVDs9WXNseD5UTUFscG9Ud3d4cG49UExlc1xcbExmXFxVXFx0WFhJWUFwWW5ZdlJ5VEBYTXhdVlZYcWBkTURQS0FIS2NIVmNNTEhVa0VEam5Ed1pcXEo8YXJOQU1MbXdecXNXWFFPeXRHYFVrTFl0ZVZBaUxdPEpySW5acHNKSFJYXVlbeG14SXg/TVNHTVFOYG5HdVBWSW5DdWp3QVA+XUtMZXFcXF1TY1FzSGVVQ2lvV1VxS01Zb2lNYlR3UXlXUHl5WT14W2FzPnV3bXF2REh0Qnl4YFxccVxcXXdrYXNNYFdmPEpqPE9bVWxIdFc+THFDdXJySXBdRFdMSUxeRXd4aUtgQXI7PXBGZFg/eW5oQE15QGt0YVFLaUxdSFRlbFRoSGxQZVd0VHN4eFdxWHl3YWpbcG1KRW48THdLWGp1RVFbPUo6PHZHPUpuRW5gPExWRVA8PEpaQVJuSEs+WFVuTUo6PEo6cXFiSEs+PEo6PE4+TEo6PlpbPlxcOj5aOl5qOj9aOj5aSko6PEpaQjpGXkpKOkxSWkI6W1o6OjtaWz48PEo8PT47Qj4+OkI6Rl5KSjpMUlpCOltaOjo7SkpOWjo+WjpAXFxCPlo6Yko7Qzo7QjpLUlo7Qjo7QkI+Ojw7O0pbPDw7QjxKSkI6Pjw8Wjw/PjxKPlpaSjpCPj46P0RCPlpCOjtbOkI+Pzo7PEZeSkI6O0JbO1xcOj48PDo+OkBMQkI6Q0ZKPlpKSjpaOmpKPDs7Qls7XFw6Pjw8Oj46QExCQjpDRko+WkpKOj47PEo6PDw+akpKOk5iWko6XFw6PnBWeHk9dnd3SWZKaXJqV3ZBPlo6Plo6RmM/b2M+b288P2Y8PDo0OlwiXHtcfQ==LSUlUk9PVEc2Jy0lKUJPVU5EU19YRzYjJCIkUyIhIiItJSlCT1VORFNfWUc2IyQiIiFGKi0lLUJPVU5EU19XSURUSEc2IyQiJTVrRiotJS5CT1VORFNfSEVJR0hURzYjJCIlNVNGKi0lKUNISUxEUkVORzYi The above picture of 9 points in \342\204\2352 satisfies: a. (alignment) 123, 456, 186, 175, 274, 296, 384, 395 are colinear; b. (orientation) 9 is above 456 but below 384, 7, 1 and 2 are above both 456 and 384. The non-Pappus matroid realization problem is to find a set of 9 points satisfying the above items a. b., but 789 are not colinear. We use the fact that 456, 384 form two intersecting lines to build a coordinate system. The coordinates are set below: A1 := [g,h]; A2 := [k,l]; A3 := [0,1]; A4 := [0,0]; A5 := [a,0]; A6 := [1,0]; A7 := [c,d]; A8 := [0,b]; A9 := [e,f]; Set the constraints of alignments. colinears := [colinear(A1,A2,A3), colinear(A1,A7,A5), colinear(A1,A8,A6),colinear(A2,A7,A4),colinear(A2,A9,A6), colinear(A3,A9,A5)]; Set the constraints of non-alignments. non_colinears := [non_colinear(A7,A8,A9)]; Set the constraints of orientation. orientation := [e>0, f>0, c<0, d>0, g<0, h>0]; Put all the above constraints together. cons:=[op(colinears),op(non_colinears),op(orientation)]; We use SamplePoints to find realization points of the above constrains, empyt implies no possible realization of non-Pappus matroid. vars:=indets(cons): R:=PolynomialRing(convert(vars,list)): ss:=SamplePoints(cons,R);
<Text-field style="Heading 2" layout="Heading 2">2.3 Study of the equilibria of biological systems.</Text-field> Consider the following biochemistry reaction network. LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYjLUkjbWlHRiQ2I1EhRic= --k1--> E + S C <-km1-- E (Enzyme) and S (Substrate) reacting together producing C (Complex). k1, km1 are reaction rate constants. Question: Is there a unique positive equilibrium? First build the chemical model. LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzZMLUkjbW9HRiQ2MlEifkYnLyUnZmFtaWx5R1ErTW9ub3NwYWNlZEYnLyUlYm9sZEdRJXRydWVGJy8lK2ZvcmVncm91bmRHUSpbMjU1LDAsMF1GJy8lMGZvbnRfc3R5bGVfbmFtZUdRLE1hcGxlfklucHV0RicvJSxtYXRodmFyaWFudEdRJWJvbGRGJy8lK2ZvbnR3ZWlnaHRHRj0vJSZmZW5jZUdRJmZhbHNlRicvJSpzZXBhcmF0b3JHRkIvJSlzdHJldGNoeUdGQi8lKnN5bW1ldHJpY0dGQi8lKGxhcmdlb3BHRkIvJS5tb3ZhYmxlbGltaXRzR0ZCLyUnYWNjZW50R0ZCLyUnbHNwYWNlR1EmMC4wZW1GJy8lJ3JzcGFjZUdGUS1JI21pR0YkNipRKHJlc3RhcnRGJ0YvRjIvJSdpdGFsaWNHRkJGNUY4RjtGPi1GLDYyUSI7RidGL0YyRjVGOEY7Rj5GQC9GREY0RkVGR0ZJRktGTUZPL0ZTUSwwLjI3Nzc3NzhlbUYnRistRlU2KlEjUjFGJ0YvRjIvRllGNEY1RjgvRjxRLGJvbGQtaXRhbGljRidGPkYrLUYsNjJRKiZjb2xvbmVxO0YnRi9GMkY1RjhGO0Y+RkBGQ0ZFRkdGSUZLRk0vRlBGaW5GaG5GKy1GVTYqUSxOZXdSZWFjdGlvbkYnRi9GMkZYRjVGOEY7Rj4tSShtZmVuY2VkR0YkNiktRiM2MC1GVTYqUSJFRidGL0YyRlhGNUY4RjtGPi1GLDYyUSIrRidGL0YyRjVGOEY7Rj5GQEZDRkVGR0ZJRktGTS9GUFEsMC4yMjIyMjIyZW1GJy9GU0ZjcC1GVTYqUSJTRidGL0YyRlhGNUY4RjtGPi1GLDYyUSIsRidGL0YyRjVGOEY7Rj5GQEZnbkZFRkdGSUZLRk1GTy9GU1EsMC4zMzMzMzMzZW1GJy1GVTYqUSJDRidGL0YyRlhGNUY4RjtGPkZocC1GVTYqUTFOZXdNYXNzQWN0aW9uTGF3RidGL0YyRlhGNUY4RjtGPi1GaG82KS1GIzYoLUZVNipRI2sxRidGL0YyRlhGNUY4RjtGPkYvRjIvJStleGVjdXRhYmxlR0ZCRjtGPkYvRjJGNUY4RjtGPkYrRi9GMkZqcUY7Rj5GL0YyRjVGOEY7Rj5GWi1JJ21zcGFjZUdGJDYmLyUnaGVpZ2h0R1EmMC4wZXhGJy8lJndpZHRoR0ZRLyUmZGVwdGhHRmFyLyUqbGluZWJyZWFrR1EobmV3bGluZUYnRistRlU2KlEjUjJGJ0YvRjJGWEY1RjhGO0Y+RitGYG9GK0Zkby1GaG82KS1GIzYwRl1xRmhwRlxwRl9wRmVwRmhwRmBxLUZobzYpLUYjNigtRlU2KlEka20xRidGL0YyRlhGNUY4RjtGPkYvRjJGanFGO0Y+Ri9GMkY1RjhGO0Y+RitGL0YyRmpxRjtGPkYvRjJGNUY4RjtGPkZaRlxyRistRlU2KlEjUlNGJ0YvRjJGWEY1RjhGO0Y+RitGYG9GKy1GaG82Ky1GIzYqLUZVNipGXG9GL0YyRlhGNUY4RjtGPkZocEZpckYvRjJGanFGO0Y+Ri9GMkY1RjhGO0Y+LyUlb3BlbkdRIltGJy8lJmNsb3NlR1EiXUYnLUYsNjJRIjpGJ0YvRjJGNUY4RjtGPkZARkNGRUZHRklGS0ZNRmNvRmhuRlxyRistRlU2KlEqU3Vic09yZGVyRidGL0YyRlhGNUY4RjtGPkYrRmBvRistRmhvNistRiM2LEZdcUZocEZccEZocEZlcEYvRjJGanFGO0Y+Ri9GMkY1RjhGO0Y+RmB0RmN0RmZ0RlxyLUZdcjYmRl9yRmJyRmRyL0ZnclElYXV0b0YnLUZVNiNRIUYnRi9GanEvRjxRJ25vcm1hbEYn JSFH We generate the dynamical system governing the reaction. LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYqLUkjbWlHRiQ2KlEzUmVhY3Rpb25TeXN0ZW0yT0RTRicvJSdmYW1pbHlHUStNb25vc3BhY2VkRicvJSVib2xkR1EldHJ1ZUYnLyUnaXRhbGljR1EmZmFsc2VGJy8lK2ZvcmVncm91bmRHUSpbMjU1LDAsMF1GJy8lMGZvbnRfc3R5bGVfbmFtZUdRLE1hcGxlfklucHV0RicvJSxtYXRodmFyaWFudEdRJWJvbGRGJy8lK2ZvbnR3ZWlnaHRHRkAtSShtZmVuY2VkR0YkNiktRiM2Ki1GLDYqUSNSU0YnRi9GMkY1RjhGO0Y+RkEtSSNtb0dGJDYyUSIsRidGL0YyRjhGO0Y+RkEvJSZmZW5jZUdGNy8lKnNlcGFyYXRvckdGNC8lKXN0cmV0Y2h5R0Y3LyUqc3ltbWV0cmljR0Y3LyUobGFyZ2VvcEdGNy8lLm1vdmFibGVsaW1pdHNHRjcvJSdhY2NlbnRHRjcvJSdsc3BhY2VHUSYwLjBlbUYnLyUncnNwYWNlR1EsMC4zMzMzMzMzZW1GJy1GLDYqUSpTdWJzT3JkZXJGJ0YvRjJGNUY4RjtGPkZBRi9GMi8lK2V4ZWN1dGFibGVHRjdGPkZBRi9GMkY4RjtGPkZBLUZMNjJRIjtGJ0YvRjJGOEY7Rj5GQUZPRlFGU0ZVRldGWUZlbkZnbi9GW29RLDAuMjc3Nzc3OGVtRidGL0YyRmBvRj5GQQ== We obtain the equations defining the equilibria and the conversation laws. Together they form a system of non-linear algebraic equations. Here, C + S - C_0 - S_0 means that C(t) + S(t) is constant along the time. Eqs := Equilibria(RS); Claws := ConservationLaws(RS); F := [ op(Claws), op(Eqs) ]; JSFH The current concentrations (given by the substrate names) are the unknowns. The rate constants and initial concentrations are regarded as parameters. JSFH rates := GetAllRateConstants(RS): current := GetAllSubstratesName(RS): init := map(u->cat(u,"_0"), GetAllSubstratesName(RS)): allvars := [op(current), op(init), op(rates)]; R := PolynomialRing(allvars); N := []; P := allvars; H := []; JSFH We compute a triangular decomposition of the semi-algebraic system defined by LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYlLUkobWZlbmNlZEdGJDYkLUYjNjMtSSNtaUdGJDYlUSJGRicvJSdpdGFsaWNHUSV0cnVlRicvJSxtYXRodmFyaWFudEdRJ2l0YWxpY0YnLUkjbW9HRiQ2LVEiPUYnL0Y4USdub3JtYWxGJy8lJmZlbmNlR1EmZmFsc2VGJy8lKnNlcGFyYXRvckdGQi8lKXN0cmV0Y2h5R0ZCLyUqc3ltbWV0cmljR0ZCLyUobGFyZ2VvcEdGQi8lLm1vdmFibGVsaW1pdHNHRkIvJSdhY2NlbnRHRkIvJSdsc3BhY2VHUSwwLjI3Nzc3NzhlbUYnLyUncnNwYWNlR0ZRLUkjbW5HRiQ2JFEiMEYnRj4tRjs2LVEiLEYnRj5GQC9GREY2RkVGR0ZJRktGTS9GUFEmMC4wZW1GJy9GU1EsMC4zMzMzMzMzZW1GJy1GOzYtUSJ+RidGPkZARkNGRUZHRklGS0ZNRmZuL0ZTRmduLUYxNiVRIk5GJ0Y0RjctRjs2LVEvJkdyZWF0ZXJFcXVhbDtGJ0Y+RkBGQ0ZFRkdGSUZLRk1GT0ZSRlhGam4tRjE2JVEiUEYnRjRGNy1GOzYtUSI+RidGPkZARkNGRUZHRklGS0ZNRk9GUkZYRmpuLUYxNiVRIkhGJ0Y0RjctRjs2LVErJk5vdEVxdWFsO0YnRj5GQEZDRkVGR0ZJRktGTUZPRlJGVEY+Rj4tRjs2LVEiLkYnRj5GQEZDRkVGR0ZJRktGTUZmbkZdb0Y+ JSFH dec := RealTriangularize(F, N, P, H, R); JSFH The system has at least one positive equilibrium if and only if the above contraints hold Display(dec[1], R); JSFH Extract the regular chain, quantifier-free forumula and positive inqualities of the computed regular semi-algebraic system. rsas := dec[1]; rc := RepresentingChain(rsas, R); qff := RepresentingQuantifierFreeFormula(rsas); PP := PositiveInequalities(rsas, R); JSFH We compute the sample points of the connected components of the semi-algebraic sets described by LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYlLUkjbWlHRiQ2JVEkcWZmRicvJSdpdGFsaWNHUSV0cnVlRicvJSxtYXRodmFyaWFudEdRJ2l0YWxpY0YnLUkjbW9HRiQ2LVEiLkYnL0YzUSdub3JtYWxGJy8lJmZlbmNlR1EmZmFsc2VGJy8lKnNlcGFyYXRvckdGPS8lKXN0cmV0Y2h5R0Y9LyUqc3ltbWV0cmljR0Y9LyUobGFyZ2VvcEdGPS8lLm1vdmFibGVsaW1pdHNHRj0vJSdhY2NlbnRHRj0vJSdsc3BhY2VHUSYwLjBlbUYnLyUncnNwYWNlR0ZMRjk= JSFH R := PolynomialRing(allvars[4..-1]): sp := SamplePoints([S_0 > 0, E_0 > 0, C_0 > 0, km1 > 0, k1 > 0, C_0+E_0 <> 0, C_0+S_0 <> 0, E_0^2*k1^2-2*E_0*S_0*k1^2+S_0^2*k1^2+4*C_0*k1*km1+2*E_0*k1*km1+2*S_0*k1*km1+km1^2 <> 0], R); JSFH Display the coordinates of the first sample point. JSFH p1 := BoxValues(sp[1], R); JSFH Evaluate the regular chain LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYlLUkjbWlHRiQ2JVEjcmNGJy8lJ2l0YWxpY0dRJXRydWVGJy8lLG1hdGh2YXJpYW50R1EnaXRhbGljRictSSNtb0dGJDYtUSJ+RicvRjNRJ25vcm1hbEYnLyUmZmVuY2VHUSZmYWxzZUYnLyUqc2VwYXJhdG9yR0Y9LyUpc3RyZXRjaHlHRj0vJSpzeW1tZXRyaWNHRj0vJShsYXJnZW9wR0Y9LyUubW92YWJsZWxpbWl0c0dGPS8lJ2FjY2VudEdGPS8lJ2xzcGFjZUdRJjAuMGVtRicvJSdyc3BhY2VHRkxGOQ==at LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYlLUkjbWlHRiQ2JVEjcDFGJy8lJ2l0YWxpY0dRJXRydWVGJy8lLG1hdGh2YXJpYW50R1EnaXRhbGljRictSSNtb0dGJDYtUSIuRicvRjNRJ25vcm1hbEYnLyUmZmVuY2VHUSZmYWxzZUYnLyUqc2VwYXJhdG9yR0Y9LyUpc3RyZXRjaHlHRj0vJSpzeW1tZXRyaWNHRj0vJShsYXJnZW9wR0Y9LyUubW92YWJsZWxpbWl0c0dGPS8lJ2FjY2VudEdGPS8lJ2xzcGFjZUdRJjAuMGVtRicvJSdyc3BhY2VHRkxGOQ== rc1 := subs(p1, Equations(rc, R)); LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYlLUkjbWlHRiQ2JVEkcmMxRicvJSdpdGFsaWNHUSV0cnVlRicvJSxtYXRodmFyaWFudEdRJ2l0YWxpY0YnLUkjbW9HRiQ2LVEifkYnL0YzUSdub3JtYWxGJy8lJmZlbmNlR1EmZmFsc2VGJy8lKnNlcGFyYXRvckdGPS8lKXN0cmV0Y2h5R0Y9LyUqc3ltbWV0cmljR0Y9LyUobGFyZ2VvcEdGPS8lLm1vdmFibGVsaW1pdHNHRj0vJSdhY2NlbnRHRj0vJSdsc3BhY2VHUSYwLjBlbUYnLyUncnNwYWNlR0ZMRjk=has only one real zero. R := PolynomialRing(allvars[1..3]); box := SamplePoints([op(rc1), S>0], R); Display(box, R); Display the coordinates of the second sample point. LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYjLUkjbWlHRiQ2I1EhRic= R := PolynomialRing(allvars[4..-1]); p2 := BoxValues(sp[2], R); LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYjLUkjbWlHRiQ2I1EhRic= Evaluate the regular chain LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYlLUkjbWlHRiQ2JVEjcmNGJy8lJ2l0YWxpY0dRJXRydWVGJy8lLG1hdGh2YXJpYW50R1EnaXRhbGljRictSSNtb0dGJDYtUSJ+RicvRjNRJ25vcm1hbEYnLyUmZmVuY2VHUSZmYWxzZUYnLyUqc2VwYXJhdG9yR0Y9LyUpc3RyZXRjaHlHRj0vJSpzeW1tZXRyaWNHRj0vJShsYXJnZW9wR0Y9LyUubW92YWJsZWxpbWl0c0dGPS8lJ2FjY2VudEdGPS8lJ2xzcGFjZUdRJjAuMGVtRicvJSdyc3BhY2VHRkxGOQ==at LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYlLUkjbWlHRiQ2JVEjcDJGJy8lJ2l0YWxpY0dRJXRydWVGJy8lLG1hdGh2YXJpYW50R1EnaXRhbGljRictSSNtb0dGJDYtUSIuRicvRjNRJ25vcm1hbEYnLyUmZmVuY2VHUSZmYWxzZUYnLyUqc2VwYXJhdG9yR0Y9LyUpc3RyZXRjaHlHRj0vJSpzeW1tZXRyaWNHRj0vJShsYXJnZW9wR0Y9LyUubW92YWJsZWxpbWl0c0dGPS8lJ2FjY2VudEdGPS8lJ2xzcGFjZUdRJjAuMGVtRicvJSdyc3BhY2VHRkxGOQ== R := PolynomialRing(allvars[1..3]);rc2 := subs(p2, Equations(rc, R)); box := SamplePoints([op(rc2), S>0], R); Display(box, R); To conclude, the system has only one positive equilibrium if and only if LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYlLUkjbWlHRiQ2JVEkcWZmRicvJSdpdGFsaWNHUSV0cnVlRicvJSxtYXRodmFyaWFudEdRJ2l0YWxpY0YnLUkjbW9HRiQ2LVEifkYnL0YzUSdub3JtYWxGJy8lJmZlbmNlR1EmZmFsc2VGJy8lKnNlcGFyYXRvckdGPS8lKXN0cmV0Y2h5R0Y9LyUqc3ltbWV0cmljR0Y9LyUobGFyZ2VvcEdGPS8lLm1vdmFibGVsaW1pdHNHRj0vJSdhY2NlbnRHRj0vJSdsc3BhY2VHUSYwLjBlbUYnLyUncnNwYWNlR0ZMRjk= holds.
<Text-field style="Heading 1" layout="Heading 1"><Font size="16">2.4 Program verification</Font></Text-field> JSFHJSFH TUZOV3RLVWI8b2I8Uj1NRExDZE5OWlttOmBMPEg6eHZYQHhsazpIUWNYTltub0hhXWNdQz5oQkdlbUtBSEZMdjpcXFJRdG1LQzpbQ05TRE9FPF1SPl1yRmFzRj9jQj9TT2VUT0NES0NkU0dlU2l1V2lVYG1WYEtGXFxLZmRPZ2Rxd2hxV3F1WHFTSG1TaHVXaXV5eXl5SUNjeFFpYVNWZ0NfYjtfZHJPdWdpbXk/aFZmdnN3clFxYDxvbElPcD5PZ11vXnJAZV9mc25gdDtWYW0+ZERIakJ2bGBgbldIZ0lva2dec0lwbG1Hd05wamBmcEhBdVJvW2hPcFheXT1PW01wbUBuajp5XVN2bWQ/ZlJUdHVybl9ybnNWckNSaj1HXVF0TT1TdztkPE1YUmFGSm9yP1doZkVTdU10WHF3TWlZWWl1cWl1cXVZYmFmdWN3aGl3WGlpSWtScXd3dVVpdXV3eG13d3dWcWl1cVlpSVlOaEVqVElXO1hQWmFyc0RYaF1tcnROSGlrTXR2Pklxa012VkBRYWxDclBLUnZhaEprVG1fSHFbaGdfZXlJZkpNdltnd0xrZEx1WF5XWXFzRkhJY21NTmttU1ZYPEJYO0VreUV3RWZPR2Nld3hhXXlea1laPVZaPXZpaXdZQ2lcXGdmdUF5ZUN5QV1ZZ1l2RT9SR011eFdUc2t0PF9yWUdmRVVVW2FjYllGa2V2VmNneGVFYWtDSXd1ZF1HTm1kO190YVlGa0l3SFRud2VTQ115QnB4WWh0bEF4SFxcVFhNVklgTE5gUVZUT1tpdndxSmxJbVI8U0VpWV5sUUtpSmp4U2ZtUlxceU12dFlZSW5GTFVCSVZNQXBIZXd5XFx5V1lXcWFRWEhQUUl5TGl0cWFRdnF0PVRdRWBlREhueW95S3ZdWVdaREl5WkdnUldsSnZ1aGZybEhfXmleQD5wY19tWV5dRT9yTFB0Xl9taFBkeEdwR25jeW9bcHRcXHN4VT95UmlkPXVZUk9CRVVySnl3ZEt5Pml0bmFSWU9WZ09EcWlET2dmamtJQlVHXk9YUVtjXz92dj1WS1d5R11ZcmN3VnV3T0dyYD13XWFHVFVyeFFDYEdIXFxNV01VV1o9RXdVQ153c3FnanJpWD91cmRVVHl4VWRNS1xcWVZAdVZsZHVfaXZqRHBATGxGSXRXaGs9cVJtYVFTbXFcXHRLeHltc3RzXWhWbUhWTXRsb1RKa1F2akVUPHVvYFhxZmBYOkFZVmxPUWBzb21STUFwPFVyaExQOklubGBMYFB5dllOSHBPQWlYXV15clVUVkhRYVBxdUl2Z1RXT0x4VElXX0V3QUBwXUBWTkFXSGhxPWxyeElTXj1qdWlRPExSUVh2SFRXREx2THltVll5UmhLVmx4VEFYQ3FYUklSWEFySGh5RnlwRV1Paj15W215aHVXVUhzTHRPaU1VVkBXTE12anFvXT9jZz5qPHBid051T1drS1d4eU9tbUliPVZeR3F5YHZjUVd4cXFjUF5gZXddaXBmbUZtOldtQ0lrPWFkamhzVnhaa2lmR29jdllpW1deSHZcXFFQbVVAaTppc1ZMc1lTVkBZamByPXlXVkBRYVZcXGFhclVmY3ZBc2Z4d2JIbUpIXFxhUGREaHVZR1txRnhhZmVfPltfaWNyQWJfaGI/WFp3bnd1UW1UXnJWSXdCV3RSUV5CTnZBeVpwUF5zZmJLUXU9XnNdQXVST1tvRmhTaXdYRlxcTk9sckFiYWZqdllnbWBhS0dgVD9ieWdjR2Fqa2hiWmZpdnhldVFtYVB0UFFhYGNgVXhbb0Z4Y3VfUWlkbURZO2dsZ0ReSVVCd3U7d3lsc1hGU2g7SURJTVdCdUk+P2dMc2VSVVQ/P0l0S0RxTXZPb1N2eWRLYVM+O1N2PUk/O1hqS2g+eXJdYXdUS1NoQXNjX1VrYVRIVXZhU2Ztb3Z1O2VyT2VlO3dpVWVMUUNXaWNVV0h5c2ZYTVI+eVNXQ0M+P1lQXUJzc3dAXVVoO3M/P3RNc0ZtX1daY2dAdVlQeVVqXVVKc3VmVWJmUWhVa2dNQ0ZjO0ZcXGlkR1VSUV1kSlFHPk1VW3N2bFV5WFtzd19yRnFXeD1YaHFneHFXcmVYT3Fzb0dSSnNFRVdEYU9WT09UYndVeEd3aXFZaVt4PnliRT9YZj9SQ1dyeGdIZD9USm9CW1NZSFtpUWlCbTtlckljaDtJSz9SaU1EY2VyS11Ja2lYRVNSdndIR1NyV1FXSUVCUHl2d09XYGVEXFx5Zk1rYk1FaENFR2BPU0NhdUxlY3JtRk5hcnFLUnNZc0ZpQ1tHeF9XdGV5QklxRFtTdUNzZl09Q3FveGlDaUhrRktXdWBdZk9LaVVzZj55Vj5PZGB5YmBXdW5XZFRdUT55c3BVT0g8b0JNU2t5cWplUVRYT1NQeUY9b0N4bzp4TTxJdTxkVT9NVXZteFl4T3RcXGpJWWpOQFl5UXM7aHN0SVlDUFNlXFxYcXJfQ0JnRUhDP2NxdWpyYXZsRXNYZVZCRU9qQGtAZXF4ZE1cXE12RHVKVjxqQ2FMV2VuXFxcXFFeZE93UWpHQFk8UFFKZXlKXVZecXJLeE1hdFZIQWpDWFNreHdSVFNwRE8/UGpBdExhVHZKbExtX2l0WHdaaXVqRl9UWHdWd3BuUHBeZ2tPQHl4Zm92WWhucV1LcGRKd2FIX2BNTmtKP2JYZ2ZDPnJwQF52UGtOcWduR1xcVWBsPEd0QHZcXFxcP3VJYW1MUV1LQV5oeG1zRmZeUV5ieVxcZ2ByYVB1O29xQD5lY2dqW3FyR0lcXEpxcDtncHFHYW5xbk5YeERGWkp2bFFWcU5JZz55cEdvaGVGbmFuX1k/bHhfWmBWdGBGeG1QXkZgXFxudmBbXnY+RmJGT1tXSWNbblpxcWVrR2lLPmVjZ0pwbmBNbnZFeFBgbkp4bGhsdXZodW1wVlBFTmhgWHNYTFlpeFJpTnFZUmJ5b0h0dTp4bFtdWVhoTU1QU2VsUkNxSlhMV2BMV1psS1N0aE9eYTpOW3VGaGpwZVduc0lxd0I+blNodEJYanVGaD1RYklfdVJGWk9BZk5pa0FIa3JIX19AXUNmYWtRbWdPZUZ2XWtXZERHblhfXVQ+dkdpYWVxYl9gXFw9R19IX2FKTnZbbmFObmNWWDxDWEhdaUtdcmtBWVxcS0Y+aXNyW0RMaUVHR1dwd0Q+WWRlR1J3V2dRXVh5VWRTa1d0PWdWP2VRQ3g9U0I9Q0d1VVdQPWU8PWRDV2NcXFNTdndJQHNWdEtobT93XFxJY2pNUktjaU5tU0Z5Z0l3R2RDSXhtY2tTVEJLRFxcY0Z5ZWc+eWNFP2RncVl5WVhmZWRtO3U+RUlbaXZ2a3l2P2NVd1N4R1VCV0RbO1M+R2M9V2RfV0hSYXJePXg+aVVYX1k9XWRDP0ReS3I+aWR2T0hWU3NleVJLPUhIVWZIP1ZNU3JldWNKY2c/a1RTXXlGO2NQUXJxS3ZNY1VoX3JDP0ReS2k+aUZbV1VkaVdFPWY/VVJRP3Jac2ZNXWVleVRYYVZiZUdqT3NcXEN1cGFyaG9YWUdjSVdkSGFjYWF1WE1GTkdjSltudUF5QnVQa3lMQHBPO0hiRHZeTEBzZUBmZ2haUEdlRmFfRFhvPEd0WU92XW9iYW9ubXhpdEBpXFw/cUJmXFxuWWRFRnRNRmVvUFxcSVFkXFxxamhGajtvZ19ua29wXFxSZ2ZbVls/PlxcbHF5THZoQ15iO2ByTVZdO253dXFpRFdfVnFlOkBsUmd5PklyRm53W3dbcEZqQ1h2U0dkZlBwOk9vc3ZxQ1huOl9cXFxcaG5AVmthbmQ6Z25JPnQ+YHdpbm9kT1pcXFFrc0dpWldbcEZsRl9pPj9rYT5iUW9qdGljdmFhZ1FkQ0ZcXGFfeXJhcl8/b0NQdU9Qd0dPdUN3dnFYbTpZb1JOcT5WXFxySF1mT15TQGlYQV5IaGRQRlpKdmJRWHZNPnNBSWB4X2V1VmVId2hXXmxMTnVqRl5EeWZIV2xySG5Fc187dT5BWFlpWUBDWGZPaEI7YnJvWHNrZ1hxV2VXdGJTU2VdcmJXRFFfQjtVeUFHaFRLaT5zaFpVREx5RnhhdUpRVVplZD9NVEJnVj9vWElLZXNTR2tReGBncj1jeVdrU1xcUXg/Q3djYUJWYUVvSUhhQ3lbU2Q7O2RpQ3JgS1dmWXZobWJic2k7Y2RvO2h0R1NCd0haR2VvV0RBU3ZkQWRNc0M+ZFlOWWpBPVJbTGtEeXRGWVg6XVNWTGtNWHdyRHg6PGtVSEhxZWpnRURzZWFhdj5JSWtAYVZ0PXlSdm10ZmtFR2NDP0V0XltyaXFScXlncD9VZVFnXkV4Yl1WYktjYENGeEdCR1VpU1FGQm9UU3NWcEtUOnl1VltyYU1URllWXFxhZXI9Qj5pZkxLZXBVeTtVV0pzSVxcUURASWNHWXZbZVldP1Rhb1drbUNcXFl0ck11Z0l1UD9GSE1WSV13YjtISVNDVU14cj1IQEFDaFtpX2tDYF15cVVXYklDX2VpWjt0dXF2YEVGRGFyQ113Q2dFP1N4W0VWbXNjQWdHeWFCZTtpakFlckNUO0l1PHVTVmNZYHFzVm1lbk9CUTtYTGVlQG1iXFw/VVpDWFFfaFhbU1hzY2xNRFF3Y1tvVXFRRlJhQlFrdUxzWEtFcltjeD5JUlJ1UlRFZlE7djtXUmNvckBPZlI9aFlzWGBneFpNeHI9d3VZVmhrZEl5VUpVSGU/RHFNZ1pheEpZRE9vSWBVVmc/ZlZVRnFtSHBbRD9RYkNXdDpXUkZ3Ql9HWXZbd3VZVHRbeVxca1NOPVhwQXRNU3RrbVZdZWdab1dpX3JUU0VET1ZbX3JDXXdDU2NBY2ZzZndJSFxcVj9pR19tYkB2Zklldj5sckBqaF9rT3BaTVl3XFxmaWBhbmt4XmJvW0leZm52a0FoZ3lvblpRcm1PdmhOX3JeY3ZfYF14Z0ZYdUFQW2pfcU5GZ1xcYWBwYWo/QGFHWXZbV3VZZlxcVj9pR19lUz53c1BibmdeeF5lbj5rRXBiO0dcXHlua3BpdFtZcWhHaGZHZ1h2W3V4ZGN4SGN0eXNkeUlEU0FVbktDaVVmQmtWR1VJRHlHYXN4ck11RlFJQldkUD1kVlNGT29FW3djWXlUa1ljclNnU3NoYEFFY11WYktjUENUST1VbV1jbltITmNSZT1nYVtXUEF0Sl1Edm1lTVdEYWFyc0pYbEtcXHlubHFrZEhVX1lMbVlQeU1OUF10PV11XUFxTGx1SnRZXFx1d014VXFoVE9FbEldc2N1cXR4SnZNa1JFVElEWElYdkQ9WTxdeVF0cDtcXEtSUXdQPE5NeW9maG1IPXleWHhpWHNlQFlVZHY6WUtcXEFZRlVQTFBVWkR4U2BRU01tTkR2cT1Ra1FXPnlOSndsaWlyUU5jVnBhPW9gVEhqV0hmW25rbEZoYl9yZUZxSUBtbmldR3ZeWGhdPl5tU0FyQ191Y3B3QllydT5qYXlsV2hmdEF1WEFjWGZeYXhbP0Z4XVhvcG91YEhcXFF3YXlecFhhY1lJdHJPdnd5Z19RaEFYcEJAcWc+eT5GZHE/bW1IaE1XeUl2aXFRdXd2a2E/c2BwbGxGYlhgc114aVs/XmhweE5mdE9AX0xYaWFea1RId3VOXUhfcWxgdmZAXm5fdz1nXVdxXFx2T2piWGFGSXVyeFpBUVxcamBubkZjdz5sb2BnWnZgQnhfbWl3Sm92eWFaZ1FmZ3hhT05wV1FkVXF1TV9gd3diXUlrRXl2dlBhbl54UVh1bG50VHlkQGZ1TmldXFxxYV5WYGpmXkJucGxwa1Z3XmhZYz5Ra1RGa0lvX1Q+XVJ3bUlxaFFvdEVmd0ZPeUhwYk12bEpZXFxLUXdpP2VlZmhzYWpNZ3U7eHY+dnJMV3BPeHhfXmNcXHFpPl9PZUZIT2Z0PWZtc3Zpb1dRS1R3SUJzX2RzXXhrXVJWTXJ4aFByYWpjcHdqZFRPdGxdQHdTRXNMZHVSUVVQWWptQXdhbVNZTU5QR2xyR2lLPmpMT3Nwd2xNQWBgTnRuaV1HYmU/U3NdeF1FRGdLVT13U0plWEFHd0FZR1c7R3RtdF9hSFNnY29fVz47ZlRjUzt5VUFfdmRBWFU/Q3lRY3ZBeWlNclJtZV53d2JdSWs9dUtNQl9lZF13dkFBZUZRRmB1ZkthVUJNVVNNeVtDZFk7dGxTQnZbU107Zmx5ZnBzeVNfRkJzYnE/ZmhdVl53d0JDQmtFV2dlVlFtdT8/aVNHVT5PRVA/dztpRlVpWDtlQk1tVjpXUl9RV2NDRGBHSGE9eHBzdndlZFF5aWRheWhJRGpzZnRXUmc7RkN5Z0ZbRkRZZFNtYmNXVWNRVXJxU1BzRlhlYnJXZUdJQkY/Q2RLd1hJQmFrdzprVHc9Qm1jSGFxQ2A9SWtRdUJXVV5ZREhVeVhhZVVZeUxDaFxcZ0hsc1hOeVZ4YVJmP3ZtYWVHR0lOa1NWV0RhOkxKXFxRVGltbU10S3B4a0FATz9FVkVATElEVFRsU0hdcXM9a3VoclhATmBBS29EVlFsT3J1U1ZkYXdpeGlIYl9AeWhuaWdPYlxccW9reF5GVmg+UG1qWFtRXmFdbmFTWWhjd3dveGFTX1tTeWJ5aV9IZnZld2lzPnFjV3dqb1p3cGBbRmhxQHVNXlxcamhhTmFqY15kaldbeFBwSnBhWGBfV0BjQ1FeXldcXG1mZWpObUxPcV5Yb0hwZkpZZ21JXFxxZ2t3RmI8aGNKQGRNXmBwYVpPTl9OeG14aWVpR2tJcG5JcXJhWFtKaHNCSWBuZl5WcV9vT1p4Z2c8cWFoUV11T2pAVm1ydnVUX248Z2pZYFxcbGhaSUdrSV9vdU9vTU9ieF9lXW51eV5gbldsXmhvPHBlVUhsclhlZklbXFxva0pXXFw+P29qSWJjX2BpSV9rUWhhQGlPeWlKTnZUR11NdltbbmdqSV9wYVo7bmdJZmA7QVtPbl1scXRlQG9hWWtxZ2lXQV5IUHBoRl5cXEF3b0h5QlhxQXFtal5zS05HY2JES3NnbXVMc2JnZWJLRXRaa3l4P0NpO0ZcXEF3b0d5QldpQXFlaltzS0tXPGFEZFtpX29kdmdGeD1DSGFWOk1VeWV2eGlGXFxlVmVJdm5xZj9RRlp3dGBbeGRzd1BFRTpDSTxlU0pFZjxPZFRveFJQS11JUkJBTWVwb2twVGJJa1F5VmlUS0VdUXBRT0tJUHh1WVZYTGFhcnNebXI6UE1mPHh1WWtYQExpeFA8WVVaXFxyZWRZT3V1WHBxQnluYFRPZWF5WmxZWnhKeWBOUVVqdHVka15tPmlucl5hY29qPj9tU2FcXHFwcXdGYVJ3Z1VAcD5hbXdRZ0Vvdmxha1B5WmleeD1AeWVPeXBneWs+YU1JbG9ZeGt4cD8+XFx5Vm07Rm1zeGpTaGNVcXhWd3dpWWRJbmw6cWlvWG9iTnhxeHBfSVpwV3k7X2VQeXB1bl88b1Bmak1AeV1BamhPc01XYmtnYVNXaUxBaXd5d1RXbV54YWReclR5a2JOeGlvd01Ba0lwbHZZXkhucUF2YlI/WmtZXTpmdU54bnBIdHBxYEtfX3l2ZWVXbG5BZkNWcFp2YlxcUGpDYXBxXnJLX14+Zm5iVm51eWRkb3dOcHFXUGxRb2pdR3lqT1xcaWBoPE5xY3ZjR2hrbFdqbj9bU1Zda1dxcEZmUGFtUk55XXZtcmdcXHR3ckhQXkFfckVpaVhAXFxBR2xKXl5bcWxVbm9NRmJXcXhxeG1BWXVDT2JxYHRVcWxCZlprb2BrX1p4WGpmaG1yRm1zT19FYXBOZmtMQHJKdnBOSV5teHY+QW5tZmVAWWZHcWRDUVo7b2s/WGBRTmk7X2VJREZfZzp3eHRfaE1nRkZVd1VpY251YkBZZ1phVUtrUmRhQkZdVXVDWFxcSXVaU2ZhUVdoY2VmS1RXS0JFXXVMdUJIYWVSa3ZGdURfa1dLX0deVXlGTXZ1Z2laa1c+TVJiYVJTR3VBbWRNc0lYZ0NJQ1hWV0dcXHFZYGVCZ2FyQ19ZcWtzcF9DUmlmTWdSQHViWnN2bHVDW3lSRUlTV2VCcWF2XFxXSGFrYmNdZHJTZVdTckx5cld5U1dnWEBNUjpdck1ndVtbRkhjZHhTd0RzY1p1dWdndGR5U1F1Y0FJd1xcU2Y9PUl0O0hqWVVAWWZfUVlXX2J1TVhWW0VzQ0hWPWNtQ3VrW0d4XUVIdUR3P0ZITUZbW2JQP0lEXUU7cWdqS1U6bWl1X2U6Y1VDRUhQb2ZFb0R5cVNJYWVmZUVsU1lIXUNkeXJHWUhhY0lxO1VpZ1RadWlRa1U/X1I8PVI+eXJ0U3JCXUVhUWNabVRSP0Rvc3V3PVREPXJQXVVWa3ljeWJeRWRLSUZSX3JnY1hyWUVtb3Y+QUh3QWlYW0c7O0VDUWJDW1Vha1ltd0Q+SVNeW0I+XVlkYVVyQ0dOT3JAXUVhUWNKeVQ6eVZISWV4O2RQQWNSP0lkc3dKP3hcXF9oVFtXS01Ebk1uS1hMYFVzQ0huSUBqSnFZQmBWO0hNbU1WXFxpbF9xbUp0UFxcRE5eYUo7XWp1dVF3VWo6cGpwUVVTTVJfQVRKdHJdTVNAQFFmT3g/RmdnP2J4V2BIZmlqYXV5TnY/R2dPPnVcXGBeYmFyV0hsTW5mRUlrW3haRT9idUleTGhaYHFxRElqb3lkXkBiVF54PkBpPWBneGFyeU5waUBwRT52Rz5vZkhqT0FhbkliX0BvaU5eUUlmS0leUm5lP0luRz9tZ3ZeQEhoYVZjVGhhdW5ycm9xbz5rXVZxeWhhP0FxU15rPWZlTE5dW3hbaml0W1l0cGlneGdhUXlrVWlhYW5yTVlwaUdwWU5lQUBxP3FeanhsOldyWFZebklaWEZaR05pTmVTeWNzZVJjV3VHaWdEXVV1Y1hUa3I+b0lSR0d0VXRoa1h5W1hOYVZOc2RxT0drPVNva2ZDUVdgZ1ZDd2JsQVRyQ1hIXU1YYXA+WW5jcG06UE9McHZAWExpYHhPZVlVeVBvYUpreFBveHlxdVlfRUo+aUs7YWpvQE9nTE9SUXc9WVJ2PFBvYWpoZVJFRXdTVVZiSXFrYFR5RHhRYUpRUHZeQGxxaHRBeGpyPVZkSUtmVXlTUVFfcXFSPHdxeFRSeHJRWWdWb1xcVk9rRHFkdWdpcj9rUVlvWEBkXFxpdHFZd053Q2FCP2NyUG15YF1zUkNDc21TVklVWWtFXFxCXmFSb2l5dD9nYVtXOmljSmNkcXN0SF1FQ2tGWnlWOk9kQD1UO2FydUNpeVFzdz9nYFF4VDtXTnV5SGtGaHlVWEVjQDtnYVtDXFxpaGJ3RmZBcm9NdnVZV2BrY011Ul5TdVg/dU9xV0RrRlp1dlxcd1dveWhlY2lDQ1U6ZXhDRUJLc3hrc2c+VUJOWURAQ3hUW3RNa0NaUUlrXVhkYWdDP2loO2VSR1VOc1Q/T2ZjO2Vic0c8d3h0Q1Zxb0JUY3RJQVZcXHFJYGlkYkdUd0NmcUlzP0dnYVtYXFxxZnRNUnlNWGhPY3RNVkRJRT87Qk1zUmFvc2ZtZkBLdnQ/VjxtREQ7Rl5pUzthQm5hZlhrSVFrZz9jaVhtcj5pWUZZR0tVZXRNYkdbaEp1ZXRNUmVRc3lxaVBjWF9NZ1g/YkFrQ19fR1lfdk51U1JnWVZfcng9cj5JdGNXWGRZSG87RFFpQk07Q24/ZHFzZmlpSHZXRUhZeW9RSUpZd29NdnhrXnBmeD5WXWJHbnhmeD5wdE94cXJQXFxxZ2ZcXHBtSm9vS1hhV0lrVVBXT0ZhQ2hZW3hacXNUaWRMT1l3TWlAS3ZSPUhbQUZ4S3Vrb0dzaWNOZ2Ryd1NoY0JkZVRJPWg7b0RkcVRJPUV4XWVid0ZOaXdPP2U/eWN1P2dhW3VpZ1RKb3lqYVZ2b2J4a2dFa0ZuTWhgP1Y8a0Y+X3RieVY7UVJWeXJ2T0RvS2dhO2U6VUNvVWdhW0NcXGFUd0NCTVl3Wk9pdE1yQ19FTXNSVFN1VHFnTz1oWk1SYVNXRGtGbldUY0VXbGd1RF09Qm5BUkVTQ011U1JbcmNPWTxrY1FfZ3lnWXVPWTx1Ulg/WEpzUlxcPWlUQWNdQ3I+b1h3eURFUUNnYVRqQ2ZTaWRqU2I8Y3haUXleP3RnZ0dyQWVRTWZAZXg+b0ViRVZbTXdDU2JyY1RJPUdcXHlyUFlEQGdVd0NWdkFTUk1YVXdkVmFmRWtJUUtIYGFXRmd0YG9lal9CVD1nUWVJWz1EYU93Q3dob1d3WlNjR2lmWD9GcEVWTVdEQW1WQ1toSnVndE1ycHNTU0V3S0t5Vm1JZEl3c1NlSGdidWlzSF11XFxlQ011U1JrYllrU1NDV19LdkdPVEk9dFlBVUNBU0tXdWxbclVjZlg/RkBfdU9BVGRnZkJ3YmxBPHROSEk7VWNrT3g+b1Zba3dBbWNAR0ZpUXlyU0ZJPVdUb0loWVJIb2JtYWNRYXl2U2VTZWJyXURcXFd3UVFTVnliXU15SVV2T112PllCXFxrU2Z3Y01zWGFrd0xXZjtRZmc7WF5FY2p3VHZjeFc7clV1VFhjR1xcUXhrO1RZTWRFP0hXaWdpQUVeUXZlZVJsSUNPd1J5PXRkX3Jlb3ZiPVZvZ0JIX0dLa3hEV0hcXFlzYztSVXV3eUl5Rz9nZmN4OnFzSGdpeV1CdVN1cE92V3NzZj1ZcnFlckN5PndGRHVzb19XWXNnTFdmO2F0UGxQRV1qWFlqV0RXXWxyXWl2SD10cHBZcEVPRkh2T01cXGhXaktQXkRmZUdwaHJPXm9mbFp4bWpXW0JnYEt2c25GXFxrUV9zTl1GZ2c7PmBTT15CP3dBdmZUQVtOaHV1WFxcR1l0WHBcXEdOdkVhcFhJa0JYbldOdl9OeEN2dHlXb0xXW2tvYlhAXFx3T3ZPUWhuPnRCYVtCQWNQQFtEX3JYcGBcXFldcV9ySm9xO0hzcEludVhkQEZ4UkhiVmZ3SnZ4a094Q3ZvQnZcXE5RYlZIbGFeYllAaW9gXUdeYGxWWmxObF9OakxGcF9oa3JGaUdgb012XmlZZFxcUWBYSXZOcWpBUGtuWVxcWnlud0l5VHJGX0lbS3k+WWdfQVdqY2g/W1dQP0M9P2N3Y1c+QVhEbWNfX2hnR2RyP2laRUZoQ3ZXQHRoWFVieU5GTE1NeFBtaXhdSXlgTE5YZU9BVUpLcUxaZEw7SG1fTFJVRXJURW5lSE1MSE1jbE5kVVVleFQ8YHN0ZWxjaXZMbHVbQXltRFFaeG1qVU9CRU9tZFQ8VWtLdG9MWG47QFdFPGxEQHJGUUw7QGtpUFhgaGtyaXZUaVFVXVJuaHhLaXFZZVJVVFN3dGxoYVVseFZ3aWxkaWtJRXZXTFM8QHBEPHNhXFx1ckF2d0F0bGByZWB2Yj1uVFFKQ0hzTERqQ0BTaERXXWxrT2BWd1VXVXBNVUVPXFxpTXhsVTxIdnZEdW1FdlJFSlRtdGVgc0FBVU9ESkhkeTpxVEZZUGddclBdT25Nb0xhU0hdbWtIcnNUT2BxcHVISkhdVmRhTlhkamZZcFhQTHE9b0tMd0t4TkJ1WXRRcmc8VFlEWFBtbUpRTndddU1UbFldanREa21QeD5sU1ZZcWBtc0hdUTxtckNYaHNGaEhzPklBOl1JbltyPz9oVGdmS0lmZ2V2dnlDX2FocUlyS21TW3lpT09WPk9ZWW91XkFWVGF3d0NYb1VpeFF5bz93OnNUcXd5SXlJPmt0YHV3Q3dla0tJRElzPF1WQndlY2tFQmdCUHFWaXROPGV2c1BWWWRqQnFqRkBUS0Rqbkh1bU12ZFFXbGBYb11UOlhXR21QQnhKS3FWSUlrUVh2XkV3VUlUW2xvb0RtSnRLWmhzWFhMQU1VTXh0a11KQHl2XFxQUlZVV2xgTU1YeDtkcFNZWFxceW5tQVR4YFd0UVR3RU9UbG5vXFxUaEF1RVhyTGhKSnFWSUlrSXBMWk1QQFRKVFF0U2FUPj1rZWVTUHhzP2RWUz1QZ214VkBZUDxSQ1VKRGVqcFRtWExObm1sT1lKSmFXSGxuR3FZSnRKb0lveEFLTHRTUFRORV1xbFV5eWBSa3hrXUB5aEVMX2x5bFFxQk1ZT0BvcElYZ2FXeVxcbTtgbk5EcGVlTEdAeWFATlR4dGRMdVNxWXJkbnBRU148V0xdSkZVV2xwWGdQbkF1V215cUdxbU10bD49eVpZbEllcWx1TkxQUkFdcm5wTkVZWXFxdUVQcXE9SmdtaGtnbkk+dk5HZE9RbXl3Zk4/a11wXj1OaURXXkpwYHV3aWlBbEJvYE9Za1pOX0BnZGBIYm5IdXVPdmlPbFlRZ3ROYD5JY01YWmNXUGhWS3VZd3FZXj1qTXFOQUx0YHVNYElRWTxyeVVPXFxdWEJYTUdtS2Boc2FoampUbGJtUl1hcnNEWEh3YEhfbU1ia012VmxXVm5DOlpVYm1Ndm9LZVh3WGFzQkR5RVE/SWtBUmZfeT9FVl9BUnk/Qk1LUlRnZ3hlaEJJY3VpVmxESmRxcHZhbEpQUGVxS1lpTl5JUWt1UUNYckNgcXRBTU11WHJ1UGFsd2VEWG9AUUtQcFBNU1ZAcWlgcl9hUnNkSkFRS1pwdkR1b2FAUWtBWlFQXFw6RmU7X2RwZlt3T3ZNaWVWQHF5YXJRb3hkU089REF5ZDxxaUlteT9zRmh5cWV1S2Ndcjs9TG1IUEJRTUlBVmxNdnhQTEldc2JhckFlUFxcaW1WQFlKXFxyT0RMTXRtdHR2XVl3QERRa0FOQlh2UWVrckF0OnFVOkVxPElRa0FqQnZjZWlmS1hcXElCeEN1cDtoX0FmQFNJO0ljdUlXTD9GQjtHU0NUTD1XTWdoP2lSP09zYVVIVGlycz9WdnVDVj9pWW94XVlVbXVHSldUYV1oZktnPkl0PWtyaWlSY1dXQW1lcm1ISDtIZktYXFxJclNfaXM9d2h3SUJfVkVZRnVzc2NvdkhfUm1HdnZtVlNXRGFhOjpWYnZ5eTtWaUlxdHhhaGVXZUFEOjtCOk1US1dES1dnSjtlWjo6OjI6XCJce1x9LSUlUk9PVEc2Jy0lKUJPVU5EU19YRzYjJCIiISEiIi0lKUJPVU5EU19ZR0YnLSUtQk9VTkRTX1dJRFRIRzYjJCIlcXRGKi0lLkJPVU5EU19IRUlHSFRHNiMkIiVxSEYqLSUpQ0hJTERSRU5HNiI= A typical program on the left can be described by the semi-algebraic transition system on the right. JSFH Verifying the correctness of embedded software can be reduced to reachability computation of hybrid systems. For a class of hybrid system modelled by linear differential equations, the following paper [1] reduces the reachability problem to a quantifier elimination problem. [1] G. Lafferrierre, G. J. Pappas and S. Yovine: Symbolic reachability computation for families of linear vector fields. JSC, 2001.
<Text-field style="Text" size="18" bold="true" foreground="[0,0,255]" layout="Heading 3"><Font bold="true" foreground="[0,0,0]" size="18">Example (Example 3.5 of [1])</Font></Text-field> JSFH The example is to compute the reachable set from (0,0) of a specific system and the problem is transformed into the following quantifier elimination problem. LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYoLUkobWZlbmNlZEdGJDYkLUYjNictSSNtb0dGJDYtUSkmRXhpc3RzO0YnLyUsbWF0aHZhcmlhbnRHUSdub3JtYWxGJy8lJmZlbmNlR1EmZmFsc2VGJy8lKnNlcGFyYXRvckdGOS8lKXN0cmV0Y2h5R0Y5LyUqc3ltbWV0cmljR0Y5LyUobGFyZ2VvcEdGOS8lLm1vdmFibGVsaW1pdHNHRjkvJSdhY2NlbnRHRjkvJSdsc3BhY2VHUSYwLjBlbUYnLyUncnNwYWNlR1EsMC4yNzc3Nzc4ZW1GJy1GMTYtUSJ+RidGNEY3RjpGPEY+RkBGQkZERkYvRkpGSC1JI21pR0YkNiVRImFGJy8lJ2l0YWxpY0dRJXRydWVGJy9GNVEnaXRhbGljRicvJStleGVjdXRhYmxlR0Y5RjRGNC1GLDYkLUYjNidGMEZMLUZRNiVRInpGJ0ZURldGWUY0RjQtRiw2JC1GIzY3LUZRNiVRI3AxRidGVEZXLUYxNi1RIj1GJ0Y0RjdGOkY8Rj5GQEZCRkQvRkdGS0ZJLUkjbW5HRiQ2JFEiMEYnRjRGTC1GMTYtUSYmYW5kO0YnRjRGN0Y6L0Y9RlZGPkZARkJGRC9GR1EsMC4yMjIyMjIyZW1GJy9GSkZgcEZMLUZRNiVRI3AyRidGVEZXRmNvRmdvRkxGW3BGUC1GMTYtUS8mR3JlYXRlckVxdWFsO0YnRjRGN0Y6RjxGPkZARkJGREZmb0ZJRmdvRkwtRjE2LVEoJndlZGdlO0YnRjRGN0Y6RjxGPkZARkJGRC9GR1EsMC4xNjY2NjY3ZW1GJy9GSkZccUZpbkZlcC1GaG82JFEiMUYnRjRGWUY0RjRGTEZZRjQ=where restart;p1:=y1-2/3*a*(z-z^4);p2:=y2*z^2-1/2*a*(z^4-1); Decompose the system LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzY2LUkjbWlHRiQ2JVEjcDFGJy8lJ2l0YWxpY0dRJXRydWVGJy8lLG1hdGh2YXJpYW50R1EnaXRhbGljRictSSNtb0dGJDYtUSI9RicvRjNRJ25vcm1hbEYnLyUmZmVuY2VHUSZmYWxzZUYnLyUqc2VwYXJhdG9yR0Y9LyUpc3RyZXRjaHlHRj0vJSpzeW1tZXRyaWNHRj0vJShsYXJnZW9wR0Y9LyUubW92YWJsZWxpbWl0c0dGPS8lJ2FjY2VudEdGPS8lJ2xzcGFjZUdRLDAuMjc3Nzc3OGVtRicvJSdyc3BhY2VHRkwtSSNtbkdGJDYkUSIwRidGOS1GNjYtUSJ+RidGOUY7Rj5GQEZCRkRGRkZIL0ZLUSYwLjBlbUYnL0ZORlctRjY2LVEmJmFuZDtGJ0Y5RjtGPi9GQUYxRkJGREZGRkgvRktRLDAuMjIyMjIyMmVtRicvRk5GaG5GUy1GLDYlUSNwMkYnRi9GMkY1Rk9GU0ZZLUYsNiVRImFGJ0YvRjItRjY2LVEvJkdyZWF0ZXJFcXVhbDtGJ0Y5RjtGPkZARkJGREZGRkhGSkZNRk9GUy1GNjYtUSgmd2VkZ2U7RidGOUY7Rj5GQEZCRkRGRkZIL0ZLUSwwLjE2NjY2NjdlbUYnL0ZORmdvLUYsNiVRInpGJ0YvRjJGYG8tRlA2JFEiMUYnRjlGOQ== with RealTriangularize. The output consists of five regular semi-algebraic systems. R := PolynomialRing([z, a, y1, y2]); rtd := RealTriangularize([p1=0, p2=0, a>=0,z-1>=0], R); Display(rtd, R); For the first four subsystems, we can immediately get conditions for the subsystems to have real solutions. We now consider the last one. r5 := rtd[5]; Display(r5, R); First we can immediately conclude that when LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYoLUkjbWlHRiQ2JVEjeTJGJy8lJ2l0YWxpY0dRJXRydWVGJy8lLG1hdGh2YXJpYW50R1EnaXRhbGljRictSSNtb0dGJDYtUSI+RicvRjNRJ25vcm1hbEYnLyUmZmVuY2VHUSZmYWxzZUYnLyUqc2VwYXJhdG9yR0Y9LyUpc3RyZXRjaHlHRj0vJSpzeW1tZXRyaWNHRj0vJShsYXJnZW9wR0Y9LyUubW92YWJsZWxpbWl0c0dGPS8lJ2FjY2VudEdGPS8lJ2xzcGFjZUdRLDAuMjc3Nzc3OGVtRicvJSdyc3BhY2VHRkwtSSNtbkdGJDYkUSIwRidGOS1GNjYtUSIsRidGOUY7L0Y/RjFGQEZCRkRGRkZIL0ZLUSYwLjBlbUYnL0ZOUSwwLjMzMzMzMzNlbUYnLUY2Ni1RIn5GJ0Y5RjtGPkZARkJGREZGRkhGVy9GTkZYRjk=above some real root of LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzZqbi1JI21pR0YkNiVRInBGJy8lJ2l0YWxpY0dRJXRydWVGJy8lLG1hdGh2YXJpYW50R1EnaXRhbGljRictSSNtb0dGJDYtUSJ+RicvRjNRJ25vcm1hbEYnLyUmZmVuY2VHUSZmYWxzZUYnLyUqc2VwYXJhdG9yR0Y9LyUpc3RyZXRjaHlHRj0vJSpzeW1tZXRyaWNHRj0vJShsYXJnZW9wR0Y9LyUubW92YWJsZWxpbWl0c0dGPS8lJ2FjY2VudEdGPS8lJ2xzcGFjZUdRJjAuMGVtRicvJSdyc3BhY2VHRkwtRjY2LVEqJmNvbG9uZXE7RidGOUY7Rj5GQEZCRkRGRkZIL0ZLUSwwLjI3Nzc3NzhlbUYnL0ZORlNGNS1JI21uR0YkNiRRIjNGJ0Y5LUY2Ni1RIipGJ0Y5RjtGPkZARkJGREZGRkgvRktRLDAuMTY2NjY2N2VtRicvRk5GZ24tRiw2JVEjeTFGJ0YvRjItRjY2LVEiXkYnRjlGO0Y+RkBGQkZERkZGSC9GS1EsMC4xMTExMTExZW1GJy9GTkZgby1GVjYkUSI1RidGOS1GNjYtUSgmbWludXM7RidGOUY7Rj5GQEZCRkRGRkZIL0ZLUSwwLjIyMjIyMjJlbUYnL0ZORmlvLUZWNiRRIjZGJ0Y5RlktRiw2JVEjeTJGJ0YvRjJGWUZpbkZcby1GVjYkUSI0RidGOUZlby1GVjYkUSM2M0YnRjlGWUZecEZcby1GVjYkUSIyRidGOUZZRmluRlxvRlUtSSdtc3BhY2VHRiQ2Ji8lJ2hlaWdodEdRJjAuMGV4RicvJSZ3aWR0aEdGTC8lJmRlcHRoR0ZfcS8lKmxpbmVicmVha0dRKG5ld2xpbmVGJ0Y1RjVGNUY1RjVGNUY1RjUtRjY2LVEiK0YnRjlGO0Y+RkBGQkZERkZGSEZob0Zqby1GVjYkUSQxOTJGJ0Y5RllGXnBGXG9GVUZZRmluRlxvRmdwRmdxLUZWNiRRJDExMkYnRjlGWUZecEZcb0ZhcEZZRmluRmdxLUZWNiRRIzE2RidGOUZZRl5wRlxvRmJvLUY2Ni1RIixGJ0Y5RjsvRj9GMUZARkJGREZGRkhGSi9GTlEsMC4zMzMzMzMzZW1GJ0Y5 LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYkLUkjbWlHRiQ2JVEjcjVGJy8lJ2l0YWxpY0dRJXRydWVGJy8lLG1hdGh2YXJpYW50R1EnaXRhbGljRicvRjNRJ25vcm1hbEYn has real solutions. However, the following computation shows that when LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYoLUkjbWlHRiQ2JVEjeTJGJy8lJ2l0YWxpY0dRJXRydWVGJy8lLG1hdGh2YXJpYW50R1EnaXRhbGljRictSSNtb0dGJDYtUSI+RicvRjNRJ25vcm1hbEYnLyUmZmVuY2VHUSZmYWxzZUYnLyUqc2VwYXJhdG9yR0Y9LyUpc3RyZXRjaHlHRj0vJSpzeW1tZXRyaWNHRj0vJShsYXJnZW9wR0Y9LyUubW92YWJsZWxpbWl0c0dGPS8lJ2FjY2VudEdGPS8lJ2xzcGFjZUdRLDAuMjc3Nzc3OGVtRicvJSdyc3BhY2VHRkwtSSNtbkdGJDYkUSIwRidGOS1GNjYtUSIsRidGOUY7L0Y/RjFGQEZCRkRGRkZIL0ZLUSYwLjBlbUYnL0ZOUSwwLjMzMzMzMzNlbUYnLUY2Ni1RIn5GJ0Y5RjtGPkZARkJGREZGRkhGVy9GTkZYRjk=LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYlLUkjbWlHRiQ2JVEicEYnLyUnaXRhbGljR1EldHJ1ZUYnLyUsbWF0aHZhcmlhbnRHUSdpdGFsaWNGJy1JI21vR0YkNi1RIn5GJy9GM1Enbm9ybWFsRicvJSZmZW5jZUdRJmZhbHNlRicvJSpzZXBhcmF0b3JHRj0vJSlzdHJldGNoeUdGPS8lKnN5bW1ldHJpY0dGPS8lKGxhcmdlb3BHRj0vJS5tb3ZhYmxlbGltaXRzR0Y9LyUnYWNjZW50R0Y9LyUnbHNwYWNlR1EmMC4wZW1GJy8lJ3JzcGFjZUdGTEY5only has one real root. R := PolynomialRing([y1, y2]): p := 3*y1^5-6*y2*y1^4-63*y2^2*y1^3+192*y2^3*y1^2+112*y2^4*y1+16*y2^5; SamplePoints([p=0, y2>0], R); So after simplification, our final result is LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYpLUkobWZlbmNlZEdGJDYkLUYjNjAtSSNtaUdGJDYlUSN5MkYnLyUnaXRhbGljR1EldHJ1ZUYnLyUsbWF0aHZhcmlhbnRHUSdpdGFsaWNGJy1JI21vR0YkNi1RIj5GJy9GOFEnbm9ybWFsRicvJSZmZW5jZUdRJmZhbHNlRicvJSpzZXBhcmF0b3JHRkIvJSlzdHJldGNoeUdGQi8lKnN5bW1ldHJpY0dGQi8lKGxhcmdlb3BHRkIvJS5tb3ZhYmxlbGltaXRzR0ZCLyUnYWNjZW50R0ZCLyUnbHNwYWNlR1EsMC4yNzc3Nzc4ZW1GJy8lJ3JzcGFjZUdGUS1JI21uR0YkNiRRIjBGJ0Y+LUY7Ni1RIn5GJ0Y+RkBGQ0ZFRkdGSUZLRk0vRlBRJjAuMGVtRicvRlNGZm4tRjs2LVEoJndlZGdlO0YnRj5GQEZDRkVGR0ZJRktGTS9GUFEsMC4xNjY2NjY3ZW1GJy9GU0Zcb0ZYLUYxNiVRI3kxRidGNEY3LUY7Ni1RIitGJ0Y+RkBGQ0ZFRkdGSUZLRk0vRlBRLDAuMjIyMjIyMmVtRicvRlNGZW9GMC1GOzYtUSI8RidGPkZARkNGRUZHRklGS0ZNRk9GUkZULyUrZXhlY3V0YWJsZUdGQi8lMGZvbnRfc3R5bGVfbmFtZUdRKDJEfk1hdGhGJ0Y+Rj5GWC1GOzYtUSUmb3I7RidGPkZARkMvRkZGNkZHRklGS0ZNRmRvRmZvLUYsNiQtRiM2KkZeby1GOzYtUSI9RidGPkZARkNGRUZHRklGS0ZNRk9GUkYwRmdwRlRGam9GXHBGPkY+RmpvRlxwRj4= print(); # input placeholder .
JSFH
<Text-field style="Heading 2" layout="Heading 2">2.5. The mad-cow disease example</Text-field> LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYqLUkjbWlHRiQ2JVEocmVzdGFydEYnLyUnaXRhbGljR1EldHJ1ZUYnLyUsbWF0aHZhcmlhbnRHUSdpdGFsaWNGJy1JI21vR0YkNi1RIjpGJy9GM1Enbm9ybWFsRicvJSZmZW5jZUdRJmZhbHNlRicvJSpzZXBhcmF0b3JHRj0vJSlzdHJldGNoeUdGPS8lKnN5bW1ldHJpY0dGPS8lKGxhcmdlb3BHRj0vJS5tb3ZhYmxlbGltaXRzR0Y9LyUnYWNjZW50R0Y9LyUnbHNwYWNlR1EsMC4yNzc3Nzc4ZW1GJy8lJ3JzcGFjZUdGTC1GNjYtUSJ+RidGOUY7Rj5GQEZCRkRGRkZIL0ZLUSYwLjBlbUYnL0ZORlMtRiw2JVEld2l0aEYnRi9GMi1JKG1mZW5jZWRHRiQ2JC1GIzYlLUYsNiVRLlJlZ3VsYXJDaGFpbnNGJ0YvRjIvJStleGVjdXRhYmxlR0Y9RjlGOS1GNjYtUSI7RidGOUY7L0Y/RjFGQEZCRkRGRkZIRlJGTUZqbkY5 LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzZmby1JI21pR0YkNiVRI2YxRicvJSdpdGFsaWNHUSV0cnVlRicvJSxtYXRodmFyaWFudEdRJ2l0YWxpY0YnLUkjbW9HRiQ2LVEifkYnL0YzUSdub3JtYWxGJy8lJmZlbmNlR1EmZmFsc2VGJy8lKnNlcGFyYXRvckdGPS8lKXN0cmV0Y2h5R0Y9LyUqc3ltbWV0cmljR0Y9LyUobGFyZ2VvcEdGPS8lLm1vdmFibGVsaW1pdHNHRj0vJSdhY2NlbnRHRj0vJSdsc3BhY2VHUSYwLjBlbUYnLyUncnNwYWNlR0ZMLUY2Ni1RKiZjb2xvbmVxO0YnRjlGO0Y+RkBGQkZERkZGSC9GS1EsMC4yNzc3Nzc4ZW1GJy9GTkZTRjUtRiw2JVEjazFGJ0YvRjItRjY2LVEqJnVtaW51czA7RidGOUY7Rj5GQEZCRkRGRkZIL0ZLUSwwLjIyMjIyMjJlbUYnL0ZORmZuLUYsNiVRI2syRidGL0YyLUY2Ni1RIipGJ0Y5RjtGPkZARkJGREZGRkgvRktRLDAuMTY2NjY2N2VtRicvRk5GX28tRiw2JVEieEYnRi9GMkZYRmFvRltvLUYsNiVRImFGJ0YvRjJGW28tSShtZmVuY2VkR0YkNiQtRiM2Ky1JI21uR0YkNiRRIjFGJ0Y5LUY2Ni1RIitGJ0Y5RjtGPkZARkJGREZGRkhGZW5GZ24tRiw2JVEiYkYnRi9GMkZbby1GLDYlUSJ5RidGL0YyLUY2Ni1RIl5GJ0Y5RjtGPkZARkJGREZGRkgvRktRLDAuMTExMTExMWVtRicvRk5GXXEtRiw2JVEibkYnRi9GMi8lK2V4ZWN1dGFibGVHRj1GOUY5LUY2Ni1RIi9GJ0Y5RjtGPi9GQUYxRkJGREZGRkhGXm9GYG8tRmhvNiQtRiM2K0ZccEZgcC1GLDYlUSJjRidGL0YyRltvRmZwRmlwRl9xRmJxRjlGOS1GNjYtUSI7RidGOUY7L0Y/RjFGQEZCRkRGRkZIRkpGVC1JJ21zcGFjZUdGJDYmLyUnaGVpZ2h0R1EmMC4wZXhGJy8lJndpZHRoR0ZMLyUmZGVwdGhHRmhyLyUqbGluZWJyZWFrR1EobmV3bGluZUYnLUZkcjYmRmZyRmlyRltzL0Zec1ElYXV0b0YnLUYsNiVRI2YyRidGL0YyRjVGT0Y1RmFvRltvRmRvRltvRmdvRmRxRmhxRlgtRiw2JVEjazRGJ0YvRjJGW29GZnBGX3JGY3JGYHNGK0Y1Rk9GNS1GLDYlUSVzdWJzRidGL0YyLUZobzYkLUYjNkdGY3AtRjY2LVEiPUYnRjlGO0Y+RkBGQkZERkZGSEZSRlQtRl1wNiRRIjJGJ0Y5LUY2Ni1RIixGJ0Y5RjtGYnJGQEZCRkRGRkZIRkovRk5RLDAuMzMzMzMzM2VtRidGNUZcckZhdEZccEZkcS1GXXA2JFEjMjBGJ0Y5Rmd0RjVGX3FGYXQtRl1wNiRRIjRGJ0Y5Rmd0RjVGZG9GYXRGXHBGZHEtRl1wNiRRIzEwRidGOUZndEY1RmdzRmF0LUZdcDYkUSM1MEYnRjlGZ3RGNUZVRmF0LUZdcDYkUSQ4MDBGJ0Y5Rmd0RjVGK0ZicUY5RjlGX3JGY3JGYHNGZHNGNUZPRjVGanMtRmhvNiQtRiM2R0ZjcEZhdEZkdEZndEY1RlxyRmF0RlxwRmRxRlx1Rmd0RjVGX3FGYXRGX3VGZ3RGNUZkb0ZhdEZccEZkcUZidUZndEY1RmdzRmF0RmV1Rmd0RjVGVUZhdEZodUZndEY1RmRzRmJxRjlGOUZfckZjckZgcy1GLDYlUSNwMUYnRi9GMkY1Rk9GNS1GLDYlUSZudW1lckYnRi9GMi1GaG82JC1GIzYlRitGYnFGOUY5Rl9yRmNyRmBzLUYsNiVRI3AyRidGL0YyRjVGT0Y1RmJ2LUZobzYkLUYjNiVGZHNGYnFGOUY5Rl9yRmJxRjk= LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzZSLUkjbWlHRiQ2JVEkZXFzRicvJSdpdGFsaWNHUSV0cnVlRicvJSxtYXRodmFyaWFudEdRJ2l0YWxpY0YnLUkjbW9HRiQ2LVEifkYnL0YzUSdub3JtYWxGJy8lJmZlbmNlR1EmZmFsc2VGJy8lKnNlcGFyYXRvckdGPS8lKXN0cmV0Y2h5R0Y9LyUqc3ltbWV0cmljR0Y9LyUobGFyZ2VvcEdGPS8lLm1vdmFibGVsaW1pdHNHRj0vJSdhY2NlbnRHRj0vJSdsc3BhY2VHUSYwLjBlbUYnLyUncnNwYWNlR0ZMLUY2Ni1RKiZjb2xvbmVxO0YnRjlGO0Y+RkBGQkZERkZGSC9GS1EsMC4yNzc3Nzc4ZW1GJy9GTkZTRjUtSShtZmVuY2VkR0YkNiYtRiM2KC1GLDYlUSNwMUYnRi9GMi1GNjYtUSIsRidGOUY7L0Y/RjFGQEZCRkRGRkZIRkovRk5RLDAuMzMzMzMzM2VtRidGNS1GLDYlUSNwMkYnRi9GMi8lK2V4ZWN1dGFibGVHRj1GOUY5LyUlb3BlbkdRIltGJy8lJmNsb3NlR1EiXUYnLUY2Ni1RIjtGJ0Y5RjtGam5GQEZCRkRGRkZIRkpGVC1JJ21zcGFjZUdGJDYmLyUnaGVpZ2h0R1EmMC4wZXhGJy8lJndpZHRoR0ZMLyUmZGVwdGhHRmBwLyUqbGluZWJyZWFrR1EobmV3bGluZUYnLUZccDYmRl5wRmFwRmNwL0ZmcFElYXV0b0YnLUYsNiVRJXZhcnNGJ0YvRjJGNUZPRjUtRlY2Ji1GIzYrLUYsNiVRInhGJ0YvRjJGZ25GNS1GLDYlUSJ5RidGL0YyRmduRjUtRiw2JVEjazJGJ0YvRjJGYG9GOUY5RmJvRmVvRmhvRltwRmhwLUYsNiVRJHBpZUYnRi9GMkY1Rk9GNS1GVjYmLUYjNiVGaXFGYG9GOUY5RmJvRmVvRmhvRltwRmhwLUYsNiVRJG5pZUYnRi9GMkY1Rk9GNS1GVjYmLUYjNiUtRiw2I1EhRidGYG9GOUY5RmJvRmVvRmhvRltwRmhwLUYsNiVRJmluZXFzRidGL0YyRjVGT0Y1RmZyRmhvRltwRmhwLUYsNiVRJ3BhcmFtc0YnRi9GMkY1Rk9GNS1GVjYmRmhyRjkvRmNvUSJ8ZnJGJy9GZm9RInxockYnRmhvRmBvRjk= LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzY0LUkjbWlHRiQ2JVEiUkYnLyUnaXRhbGljR1EldHJ1ZUYnLyUsbWF0aHZhcmlhbnRHUSdpdGFsaWNGJy1JI21vR0YkNi1RIn5GJy9GM1Enbm9ybWFsRicvJSZmZW5jZUdRJmZhbHNlRicvJSpzZXBhcmF0b3JHRj0vJSlzdHJldGNoeUdGPS8lKnN5bW1ldHJpY0dGPS8lKGxhcmdlb3BHRj0vJS5tb3ZhYmxlbGltaXRzR0Y9LyUnYWNjZW50R0Y9LyUnbHNwYWNlR1EmMC4wZW1GJy8lJ3JzcGFjZUdGTC1GNjYtUSomY29sb25lcTtGJ0Y5RjtGPkZARkJGREZGRkgvRktRLDAuMjc3Nzc3OGVtRicvRk5GU0Y1LUYsNiVRL1BvbHlub21pYWxSaW5nRidGL0YyLUkobWZlbmNlZEdGJDYkLUYjNiUtRiw2JVEldmFyc0YnRi9GMi8lK2V4ZWN1dGFibGVHRj1GOUY5LUY2Ni1RIjtGJ0Y5RjsvRj9GMUZARkJGREZGRkhGSkZULUknbXNwYWNlR0YkNiYvJSdoZWlnaHRHUSYwLjBleEYnLyUmd2lkdGhHRkwvJSZkZXB0aEdGZW8vJSpsaW5lYnJlYWtHUShuZXdsaW5lRictRmFvNiZGY29GZm9GaG8vRltwUSVhdXRvRictRiw2JVEkZGVjRidGL0YyRjVGT0Y1LUYsNiVRMlJlYWxUcmlhbmd1bGFyaXplRidGL0YyLUZZNiQtRiM2Ni1GLDYlUSRlcXNGJ0YvRjItRjY2LVEiLEYnRjlGO0Zfb0ZARkJGREZGRkhGSi9GTlEsMC4zMzMzMzMzZW1GJ0Y1LUYsNiVRJG5pZUYnRi9GMkZecUY1LUYsNiVRJHBpZUYnRi9GMkZecUY1LUYsNiVRJmluZXFzRidGL0YyRl5xRjVGK0ZecUY1LUYsNiVRJ291dHB1dEYnRi9GMi1GNjYtUSI9RidGOUY7Rj5GQEZCRkRGRkZIRlJGVC1GLDYlUSdyZWNvcmRGJ0YvRjJGam5GOUY5RlxvRmpuRjk= LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzZXLUkjbWlHRiQ2JVEjRDFGJy8lJ2l0YWxpY0dRJXRydWVGJy8lLG1hdGh2YXJpYW50R1EnaXRhbGljRictSSNtb0dGJDYtUSJ+RicvRjNRJ25vcm1hbEYnLyUmZmVuY2VHUSZmYWxzZUYnLyUqc2VwYXJhdG9yR0Y9LyUpc3RyZXRjaHlHRj0vJSpzeW1tZXRyaWNHRj0vJShsYXJnZW9wR0Y9LyUubW92YWJsZWxpbWl0c0dGPS8lJ2FjY2VudEdGPS8lJ2xzcGFjZUdRJjAuMGVtRicvJSdyc3BhY2VHRkwtRjY2LVEqJmNvbG9uZXE7RidGOUY7Rj5GQEZCRkRGRkZIL0ZLUSwwLjI3Nzc3NzhlbUYnL0ZORlNGNS1GNjYtUSomdW1pbnVzMDtGJ0Y5RjtGPkZARkJGREZGRkgvRktRLDAuMjIyMjIyMmVtRicvRk5GWS1JKG1mZW5jZWRHRiQ2JC1GIzYpLUYsNiVRJWRpZmZGJ0YvRjItRmZuNiQtRiM2KC1GLDYlUSNmMUYnRi9GMi1GNjYtUSIsRidGOUY7L0Y/RjFGQEZCRkRGRkZIRkovRk5RLDAuMzMzMzMzM2VtRidGNS1GLDYlUSJ4RidGL0YyLyUrZXhlY3V0YWJsZUdGPUY5RjktRjY2LVEiK0YnRjlGO0Y+RkBGQkZERkZGSEZYRlpGam4tRmZuNiQtRiM2KC1GLDYlUSNmMkYnRi9GMkZkb0Y1LUYsNiVRInlGJ0YvRjJGXXBGOUY5Rl1wRjlGOS1GNjYtUSI7RidGOUY7RmdvRkBGQkZERkZGSEZKRlQtSSdtc3BhY2VHRiQ2Ji8lJ2hlaWdodEdRJjAuMGV4RicvJSZ3aWR0aEdGTC8lJmRlcHRoR0ZkcS8lKmxpbmVicmVha0dRKG5ld2xpbmVGJy1GYHE2JkZicUZlcUZncS9GanFRJWF1dG9GJy1GLDYlUSNEMkYnRi9GMkY1Rk9GNUZqbkZdby1GNjYtUSIqRidGOUY7Rj5GQEZCRkRGRkZIL0ZLUSwwLjE2NjY2NjdlbUYnL0ZORmdyRmpuRmJwRlVGam4tRmZuNiQtRiM2KEZhb0Zkb0Y1RmlwRl1wRjlGOUZjckZqbi1GZm42JC1GIzYoRmZwRmRvRjVGam9GXXBGOUY5RlxxRl9xRlxyRitGNUZPRjUtRiw2JVEmbnVtZXJGJ0YvRjItRmZuNiQtRiM2Ji1GLDYlRjpGL0YyLUZmbjYkLUYjNiVGK0ZdcEY5RjlGXXBGOUY5RlxxRl9xRlxyRmByRjVGT0Y1RmFzLUZmbjYkLUYjNiZGaHMtRmZuNiQtRiM2JUZgckZdcEY5RjlGXXBGOUY5RlxxRl9xRlxyLUYsNiVRJHBpZUYnRi9GMkY1Rk9GNS1GZm42Ji1GIzYrRitGZG9GNUZgckZkb0Y1LUYsNiVRI2syRidGL0YyRl1wRjlGOS8lJW9wZW5HUSJbRicvJSZjbG9zZUdRIl1GJ0ZccUZdcEY5 LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYwLUkjbWlHRiQ2JVEkc3BzRicvJSdpdGFsaWNHUSV0cnVlRicvJSxtYXRodmFyaWFudEdRJ2l0YWxpY0YnLUkjbW9HRiQ2LVEifkYnL0YzUSdub3JtYWxGJy8lJmZlbmNlR1EmZmFsc2VGJy8lKnNlcGFyYXRvckdGPS8lKXN0cmV0Y2h5R0Y9LyUqc3ltbWV0cmljR0Y9LyUobGFyZ2VvcEdGPS8lLm1vdmFibGVsaW1pdHNHRj0vJSdhY2NlbnRHRj0vJSdsc3BhY2VHUSYwLjBlbUYnLyUncnNwYWNlR0ZMLUY2Ni1RKiZjb2xvbmVxO0YnRjlGO0Y+RkBGQkZERkZGSC9GS1EsMC4yNzc3Nzc4ZW1GJy9GTkZTRjUtRiw2JVEtU2FtcGxlUG9pbnRzRidGL0YyLUkobWZlbmNlZEdGJDYkLUYjNjEtRiw2JVEkZXFzRidGL0YyLUY2Ni1RIixGJ0Y5RjsvRj9GMUZARkJGREZGRkhGSi9GTlEsMC4zMzMzMzMzZW1GJ0Y1LUYsNiVRJG5pZUYnRi9GMkZqbkY1LUYsNiVRJHBpZUYnRi9GMkZqbkY1LUYsNiVRJmluZXFzRidGL0YyRmpuRjUtRiw2JVEiUkYnRi9GMi8lK2V4ZWN1dGFibGVHRj1GOUY5LUY2Ni1RIjtGJ0Y5RjtGXW9GQEZCRkRGRkZIRkpGVC1JJ21zcGFjZUdGJDYmLyUnaGVpZ2h0R1EmMC4wZXhGJy8lJndpZHRoR0ZMLyUmZGVwdGhHRmZwLyUqbGluZWJyZWFrR1EobmV3bGluZUYnLUZicDYmRmRwRmdwRmlwL0ZccVElYXV0b0YnLUYsNiVRJG1hcEYnRi9GMi1GWTYkLUYjNistRiw2JVEoRGlzcGxheUYnRi9GMkZqbkY1RitGam5GNUZpb0ZccEY5RjlGXnBGXHBGOQ== LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYjLUkjbWlHRiQ2I1EhRic=
<Text-field style="Heading 1" layout="Heading 1"><Font size="20"> 3. ISSAC 2011 Demo</Font></Text-field>
<Text-field style="Heading 2" layout="Heading 2">3.1 Verification of real solvers</Text-field> We set S1 up first. C1:=[a > 0 , b > 0 , c > 0 , a < b + c , b < a + c , c < a + b, b^2 + a^2 - c^2 <= 0 ]: C2:=[a > 0 , b > 0 , c > 0 , a < b + c , b < a + c , c < a + b, c*(b^2 + a^2 - c^2)^2 < a*b^2*(2*a*c - (c^2 + a^2 - b^2))]: S1 is the disjuction of C1 and C2. S1:=[C1, C2]; NyQ3KTIiIiFJImFHNiIyRiVJImJHRicyRiVJImNHRicyRiYsJkYpIiIiRitGLjJGKSwmRiZGLkYrRi4yRissJkYmRi5GKUYuMSwoKiRGKSIiI0YuKiRGJkY2Ri4qJEYrRjYhIiJGJTcpRiRGKEYqRixGL0YxMiomRitGLkY0RjYqKEYmRi5GKUY2LCoqJkYmRi5GK0YuRjZGOEY5RjdGOUY1Ri5GLg== Then we set S2. S2 := [a-c<0, a > 0 , b > 0 , c > 0 , a < b + c , b < a + c , c < a + b]; NykyLCZJImFHNiIiIiJJImNHRiYhIiIiIiEyRipGJTJGKkkiYkdGJjJGKkYoMkYlLCZGLUYnRihGJzJGLSwmRiVGJ0YoRicyRigsJkYlRidGLUYn Compute regular semi-algebraic system representations dec1 (resp. dec2) for S1 (resp. S2) R := PolynomialRing([a,b,c]): dec1 := map(op, map(RealTriangularize, S1,R)); dec2:= RealTriangularize(S2, R); NyVJPnJlZ3VsYXJfc2VtaV9hbGdlYnJhaWNfc3lzdGVtRzYiRiNGIw== NyNJPnJlZ3VsYXJfc2VtaV9hbGdlYnJhaWNfc3lzdGVtRzYi Compute the differences: S1 \134 S2 and S2 \134 S1 Difference(dec1,dec2,R); NyI= Difference(dec2,dec1,R); NyI=
<Text-field style="Heading 2" layout="Heading 2">3.2 Branch cut analysis</Text-field> restart; R := PolynomialRing([y, x]); SSV0cnVlRyUqcHJvdGVjdGVkRw== STBwb2x5bm9taWFsX3JpbmdHNiI= f1 := sqrt(z^2-1)-sqrt(z+1)*sqrt(z-1); f2 := sqrt(1-z^2)-sqrt(1+z)*sqrt(1-z); LCYqJCwmKiRJInpHNiIiIiMiIiIhIiJGKSNGKUYoRikqJiwmRiZGKUYpRilGKywmRiZGKUYqRilGK0Yq LCYqJCwmIiIiRiUqJEkiekc2IiIiIyEiIiNGJUYpRiUqJiwmRidGJUYlRiVGKywmRiVGJUYnRipGK0Yq f := f1; bc := RegularChains:-branchcuts([f]); LCYqJCwmKiRJInpHNiIiIiMiIiIhIiJGKSNGKUYoRikqJiwmRiZGKUYpRilGKywmRiZGKUYqRilGK0Yq NyU3JC9JInlHNiIiIiEySSJ4R0YmISIiNyRGJDJGKSIiIjckLywkKiZGKUYtRiVGLSIiI0YnMiwmKiRGKUYyRi0qJEYlRjJGKkYt sp := CylindricalAlgebraicDecompose(bc, R, output=samplepoints); Display(sp, R); sp := map(BoxValues, sp, R): NylJJGJveEc2IkYjRiNGI0YjRiNGIw== NyktSSpQSUVDRVdJU0VHNiI2JDckL0kieUdGJSIiIUkhR0YlNyQvSSJ4R0YlISIjRistRiQ2JEYnNyQvRi4hIiJGKy1GJDYkRic3JC9GLiNGNCIiI0YrLUYkNiQ3JC9GKUY0Ris3JC9GLkYqRistRiQ2JEYnRj8tRiQ2JDckL0YpIiIiRitGPy1GJDYkRic3JC9GLiNGR0Y6Ris= for p in sp do g := subs(z=rhs(p[2])+I*rhs(p[1]), f); g := simplify(g); print(g); end do: LCQqJCIiJCMiIiIiIiNGJw== IiIh IiIh KiZeIyIiIyIiIkYkI0YlRiQ= IiIh IiIh IiIh f := f2; bc := RegularChains:-branchcuts([f]); LCYqJCwmIiIiRiUqJEkiekc2IiIiIyEiIiNGJUYpRiUqJiwmRidGJUYlRiVGKywmRiVGJUYnRipGK0Yq NyU3JC9JInlHNiIiIiEySSJ4R0YmISIiNyQvLCRGJUYqRicyLCRGKUYqRio3JC8sJComRikiIiJGJUY0ISIjRicyLCYqJEYpIiIjRioqJEYlRjlGNEYq sp := CylindricalAlgebraicDecompose(bc, R, output=samplepoints); Display(sp, R); sp := map(BoxValues, sp, R): NyRJJGJveEc2IkYj NyQtSSpQSUVDRVdJU0VHNiI2JDckL0kieUdGJSIiIUkhR0YlNyQvSSJ4R0YlISIjRistRiQ2JEYnNyQvRi4iIiNGKw== for p in sp do g := subs(z=rhs(p[2])+I*rhs(p[1]), f); g := simplify(g); print(g); end do: IiIh IiIh
<Text-field style="Heading 2" layout="Heading 2">3.3 Study of the equilibria of biological systems</Text-field> restart; SSV0cnVlRyUqcHJvdGVjdGVkRw== Start with the Cascad of Polymerisation. n := 4: RS := []: for i from 1 to n-1 do NewR1 := NewReaction(cat('P',i)+P1, cat('P',i+1), MassActionLaw(cat('k_',i)) ): NewR2 := NewReaction(cat('P',i+1), cat('P',i)+P1, MassActionLaw(cat('km_',i)) ): RS := [op(RS),NewR1,NewR2]: end do: RS; NygtSSlSZWFjdGlvbkc2IjYmNyMtSSpTdWJzdHJhdGVHRiU2JEkjUDFHRiUiIiM3Iy1GKTYkSSNQMkdGJSIiIi1JLk1hc3NBY3Rpb25MYXdHRiU2I0kka18xR0YlSSZmYWxzZUclKnByb3RlY3RlZEctRiQ2JkYtRictRjM2I0kla21fMUdGJUY2LUYkNiY3JEYuLUYpNiRGK0YxNyMtRik2JEkjUDNHRiVGMS1GMzYjSSRrXzJHRiVGNi1GJDYmRkJGPy1GMzYjSSVrbV8yR0YlRjYtRiQ2JjckRkNGQDcjLUYpNiRJI1A0R0YlRjEtRjM2I0kka18zR0YlRjYtRiQ2JkZRRlAtRjM2I0kla21fM0dGJUY2 Claws := ConservationLaws(RS); Eqs := Equilibria(RS); NyMsMkkjUDFHNiIjIiIiIiIlSSNQMkc2IiMiIiIiIiNJI1AzRzYiIyIiJCIiJUkjUDRHNiIiIiJJJVAxXzBHNiIjISIiIiIlSSVQMl8wRzYiIyEiIiIiI0klUDNfMEc2IiMhIiQiIiVJJVA0XzBHNiIhIiI= NyUsLiomSSRrXzFHNiIiIiJJI1AxR0YmIiIjISIjKiZJJWttXzFHRiZGJ0kjUDJHRiZGJ0YpKihJJGtfMkdGJkYnRi1GJ0YoRichIiIqJkkla21fMkdGJkYnSSNQM0dGJkYnRicqKEkka18zR0YmRidGM0YnRihGJ0YwKiZJJWttXzNHRiZGJ0kjUDRHRiZGJ0YnLCpGLiMhIiRGKUYxIyIiJEYpRjQjRjBGKUY2I0YnRiksJkY0IyEiJUY9RjYjIiIlRj0= F := [ op(Claws), op(Eqs) ]; N := []; vars := [P4, P3, P2, P1, k_1, k_2, k_3, km_1, km_2, km_3, P1_0, P2_0, P3_0, P4_0]: P := vars; H := []; R := PolynomialRing(vars); NyYsMkkjUDFHNiIjIiIiIiIlSSNQMkdGJSNGJyIiI0kjUDNHRiUjIiIkRihJI1A0R0YlRidJJVAxXzBHRiUjISIiRihJJVAyXzBHRiUjRjJGK0klUDNfMEdGJSMhIiRGKEklUDRfMEdGJUYyLC4qJkkka18xR0YlRidGJEYrISIjKiZJJWttXzFHRiVGJ0YpRidGKyooSSRrXzJHRiVGJ0YpRidGJEYnRjIqJkkla21fMkdGJUYnRixGJ0YnKihJJGtfM0dGJUYnRixGJ0YkRidGMiomSSVrbV8zR0YlRidGL0YnRicsKkY/I0Y3RitGQSNGLkYrRkNGNEZFRiosJkZDIyEiJUYuRkUjRihGLg== NyI= NzBJI1A0RzYiSSNQM0dGJEkjUDJHRiRJI1AxR0YkSSRrXzFHRiRJJGtfMkdGJEkka18zR0YkSSVrbV8xR0YkSSVrbV8yR0YkSSVrbV8zR0YkSSVQMV8wR0YkSSVQMl8wR0YkSSVQM18wR0YkSSVQNF8wR0Yk NyI= STBwb2x5bm9taWFsX3JpbmdHNiI= d := nops(vars) - n; rrc := RealRootClassification(numer(F), N, P, H, d, 1, R); IiM1 NyQ3I0k7cmVndWxhcl9zZW1pX2FsZ2VicmFpY19zZXRHNiJJMmJvcmRlcl9wb2x5bm9taWFsR0Yl Display(rrc[1][1], R); Display(rrc[2], R): SSV0cnVlRyUqcHJvdGVjdGVkRw== rrc := RealRootClassification(numer(F), N, P, H, d, 2..k, R); NyQ3IkkyYm9yZGVyX3BvbHlub21pYWxHNiI= Continue with the Allosteric Enzym restart; SSV0cnVlRyUqcHJvdGVjdGVkRw== R1 := NewReaction(E+S,C,MassActionLaw(k1)); R2 := NewReaction(C,E+S,MassActionLaw(k2)); R3 := NewReaction(E+C,FF,MassActionLaw(k3)); R4 := NewReaction(FF,E+C,MassActionLaw(k4)); RS := [R1,R2,R3,R4 ]: LUkpUmVhY3Rpb25HNiI2JjckLUkqU3Vic3RyYXRlR0YkNiRJIkVHRiQiIiItRig2JEkiU0dGJEYrNyMtRig2JEkiQ0dGJEYrLUkuTWFzc0FjdGlvbkxhd0dGJDYjSSNrMUdGJEkmZmFsc2VHJSpwcm90ZWN0ZWRH LUkpUmVhY3Rpb25HNiI2JjcjLUkqU3Vic3RyYXRlR0YkNiRJIkNHRiQiIiI3JC1GKDYkSSJFR0YkRistRig2JEkiU0dGJEYrLUkuTWFzc0FjdGlvbkxhd0dGJDYjSSNrMkdGJEkmZmFsc2VHJSpwcm90ZWN0ZWRH LUkpUmVhY3Rpb25HNiI2JjckLUkqU3Vic3RyYXRlR0YkNiRJIkVHRiQiIiItRig2JEkiQ0dGJEYrNyMtRig2JEkjRkZHRiRGKy1JLk1hc3NBY3Rpb25MYXdHRiQ2I0kjazNHRiRJJmZhbHNlRyUqcHJvdGVjdGVkRw== LUkpUmVhY3Rpb25HNiI2JjcjLUkqU3Vic3RyYXRlR0YkNiRJI0ZGR0YkIiIiNyQtRig2JEkiRUdGJEYrLUYoNiRJIkNHRiRGKy1JLk1hc3NBY3Rpb25MYXdHRiQ2I0kjazRHRiRJJmZhbHNlRyUqcHJvdGVjdGVkRw== Claws := ConservationLaws(RS); Eqs := Equilibria(RS); NyQsLkkiQ0c2IiMiIiIiIiNJIkVHRiUjISIiRihJIlNHRiVGJ0kkQ18wR0YlRipJJEVfMEdGJUYmSSRTXzBHRiVGKywuRiRGJkYpRiZJI0ZGR0YlRidGLUYqRi5GKkklRkZfMEdGJUYr NyQsKiooSSNrMUc2IiIiIkkiRUdGJkYnSSJTR0YmRidGJyomSSNrMkdGJkYnSSJDR0YmRichIiIqKEkjazNHRiZGJ0YoRidGLEYnRi0qJkkjazRHRiZGJ0kjRkZHRiZGJ0YnLCZGLiEiI0YwIiIj F := [ op(Claws), op(Eqs) ]; N := []; vars := [FF, E, S, C, k2, k1, k3, k4, C_0, E_0, FF_0, S_0]; P := vars; H := []; R := PolynomialRing(vars); NyYsLkkiQ0c2IiMiIiIiIiNJIkVHRiUjISIiRihJIlNHRiVGJ0kkQ18wR0YlRipJJEVfMEdGJUYmSSRTXzBHRiVGKywuRiRGJkYpRiZJI0ZGR0YlRidGLUYqRi5GKkklRkZfMEdGJUYrLCoqKEkjazFHRiVGJ0YpRidGLEYnRicqJkkjazJHRiVGJ0YkRidGKyooSSNrM0dGJUYnRilGJ0YkRidGKyomSSNrNEdGJUYnRjFGJ0YnLCZGOCEiI0Y6Rig= NyI= Ny5JI0ZGRzYiSSJFR0YkSSJTR0YkSSJDR0YkSSNrMkdGJEkjazFHRiRJI2szR0YkSSNrNEdGJEkkQ18wR0YkSSRFXzBHRiRJJUZGXzBHRiRJJFNfMEdGJA== Ny5JI0ZGRzYiSSJFR0YkSSJTR0YkSSJDR0YkSSNrMkdGJEkjazFHRiRJI2szR0YkSSNrNEdGJEkkQ18wR0YkSSRFXzBHRiRJJUZGXzBHRiRJJFNfMEdGJA== NyI= STBwb2x5bm9taWFsX3JpbmdHNiI= d := nops(vars) - nops(F); rrc := RealRootClassification(F, N, P, H, d, 2..k, R); rrc := RealRootClassification(F, N, P, H, d, 1, R); IiIp NyQ3IkkyYm9yZGVyX3BvbHlub21pYWxHNiI= NyQ3I0k7cmVndWxhcl9zZW1pX2FsZ2VicmFpY19zZXRHNiJJMmJvcmRlcl9wb2x5bm9taWFsR0Yl Display(rrc[2], R); Display(rrc[1], R); NycsJiomSSNrMUc2IiIiIkkjazRHRiZGJyMhIiIiIiUqJkkjazJHRiZGJ0kjazNHRiZGJ0YnLChJJENfMEdGJkYnSSRFXzBHRiZGJ0klRkZfMEdGJiIiIywoRjBGJ0YyRidJJFNfMEdGJkYnLCoqJkYwRidGLkYnRicqJkYxRidGLkYnRicqJkYyRidGLkYnRjNGKCNGJ0YzLGp5KjBGMEYnRjFGJ0YyRidGJUYzRi1GJ0YuRjNGKEYnISIjKjBGMEYnRjJGJ0Y1RidGJUYzRi1GJ0YuRjNGKEYnIiNBKi5GMEYnRjFGM0YyRidGJUYzRi1GJ0YuIiIkIiInKi5GMEYzRjJGJ0Y1RidGJUYzRi1GJ0YuRkEiIzcqLkYwRidGMUYzRjVGJ0YlRjNGLUYnRi5GQSEiJyouRjBGJ0YyRidGNUYzRiVGM0YtRidGLkZBIiNDKjBGMUYnRjJGJ0Y1RidGJUYzRi1GJ0YuRjNGKEYnIiM5Ki5GMEYzRjFGJ0YyRidGJUYzRi1GJ0YuRkFGRiouRjFGM0YyRidGNUYnRiVGM0YtRidGLkZBRkQqLkYwRjNGMUYnRjVGJ0YlRjNGLUYnRi5GQUZGKi5GMUYnRjJGJ0Y1RjNGJUYzRi1GJ0YuRkEhI0MqKEYlRidGLUYzRihGQSNGJ0YrKihGMUYzRiVGQUYoRkFGUSoqRjFGQUYlRkFGLkYnRihGM0Y6KihGMkYzRiVGQUYoRkFGUSooRjVGM0YlRkFGKEZBRlEqKkYxRitGJUZBRi5GM0YoRidGUSoqRjJGQUYlRkFGLkYnRihGM0YnKihGLUZBRi5GJ0YoRjNGKiouRjBGJ0YyRidGJUYnRi1GM0YuRjNGKEYnISNPKi5GMEYzRjJGJ0YlRjNGLUYnRi5GM0YoRiciIzUqLkYwRidGMkYzRiVGM0YtRidGLkYzRihGJyIiKiosRjBGQUYyRidGJUYzRi1GJ0YuRkFGMyouRjBGJ0Y1RidGJUYnRi1GM0YuRjNGKEYnISIpKi5GMEYzRjVGJ0YlRjNGLUYnRi5GM0YoRiciIikqLkYwRidGNUYzRiVGM0YtRidGLkYzRihGJyIiJiosRjBGQUY1RidGJUYzRi1GJ0YuRkFGQiosRjBGM0Y1RjNGJUYzRi1GJ0YuRkFGRCouRjFGJ0YyRidGJUYnRi1GM0YuRjNGKEYnISM9Ki5GMUYzRjJGJ0YlRjNGLUYnRi5GM0YoRidGW28qLkYxRidGMkYzRiVGM0YtRidGLkYzRihGJyEiKiosRjFGQUYyRidGJUYzRi1GJ0YuRkFGPSouRjFGJ0Y1RidGJUYnRi1GM0YuRjNGKEYnISM1Ki5GMUYzRjVGJ0YlRjNGLUYnRi5GM0YoRidGKyouRjFGJ0Y1RjNGJUYzRi1GJ0YuRjNGKEYnRioqLEYxRkFGNUYnRiVGM0YtRidGLkZBRkIqLEYxRjNGNUYzRiVGM0YtRidGLkZBISM3Ki5GMkYnRjVGJ0YlRidGLUYzRi5GM0YoRidGY28qLkYyRidGNUYzRiVGM0YtRidGLkYzRihGJ0YrKi5GMEYnRjJGJ0YlRjNGLUYnRi5GJ0YoRjMjIiM+RjMqLkYwRidGNUYnRiVGM0YtRidGLkYnRihGMyNGX29GMyouRjFGJ0YyRidGJUYzRi1GJ0YuRidGKEYzRmVwKi5GMUYnRjVGJ0YlRjNGLUYnRi5GJ0YoRjMjRmhuRjMqLkYyRidGNUYnRiVGM0YtRidGLkYnRihGMyIiKCouRjBGJ0YxRidGMkYnRiVGQUYuRidGKEYzRicqLkYwRidGMkYnRjVGJ0YlRkFGLkYnRihGM0YqKi5GMUYnRjJGJ0Y1RidGJUZBRi5GJ0YoRjMhIiQqLkYwRidGMUYzRjJGJ0YlRkFGLkYzRihGJ0YqKi5GMEYnRjFGM0Y1RidGJUZBRi5GM0YoRidGMyouRjFGM0YyRidGNUYnRiVGQUYuRjNGKEYnIyEiJkYzKi5GMEYzRjFGJ0YyRidGJUZBRi5GM0YoRidGOiouRjBGM0YxRidGNUYnRiVGQUYuRjNGKEYnI0YqRjMqLkYwRjNGMkYnRjVGJ0YlRkFGLkYzRihGJ0ZmcSouRjBGJ0YxRidGJUYzRi1GJ0YuRidGKEYzI0ZqcEYzKi5GMEYnRjFGM0YlRjNGLUYnRi5GM0YoRidGPSouRjBGM0YxRidGJUYzRi1GJ0YuRjNGKEYnRicqLkYwRidGMUYnRjJGM0YlRkFGLkYzRihGJ0ZmcSouRjBGJ0YyRjNGNUYnRiVGQUYuRjNGKEYnRicqLkYwRidGMUYnRjVGM0YlRkFGLkYzRihGJ0ZicSouRjBGJ0YyRidGNUYzRiVGQUYuRjNGKEYnRj0qLkYxRidGMkYzRjVGJ0YlRkFGLkYzRihGJ0YqKi5GMUYnRjJGJ0Y1RjNGJUZBRi5GM0YoRidGKyouRjBGJ0YxRidGJUYnRi1GM0YuRjNGKEYnISM5KipGMEYnRiVGM0YtRidGKEZBRicqKkYxRidGJUYzRi1GJ0YoRkFGOioqRjJGJ0YlRjNGLUYnRihGQSNGQUYzKipGNUYnRiVGM0YtRidGKEZBRjoqLEYxRjNGJUYzRi1GJ0YuRidGKEYzRmZxKixGMEYzRiVGM0YtRidGLkYnRihGM0ZBKixGMEYnRjFGM0YlRkFGLkYnRihGM0Y6KipGMUYnRjJGJ0YlRkFGKEZBRjoqKkYxRidGNUYnRiVGQUYoRkFGZnEqLEYxRjNGMkYnRiVGQUYuRidGKEYzRjMqLEYxRjNGNUYnRiVGQUYuRidGKEYzRioqLEYwRidGMkYzRiVGQUYuRidGKEYzRjoqLEYxRidGMkYzRiVGQUYuRidGKEYzRmVwKixGMEYnRjVGM0YlRkFGLkYnRihGM0Y6KixGMUYnRjVGM0YlRkFGLkYnRihGM0Y6KixGMkYnRjVGM0YlRkFGLkYnRihGM0YnKixGMEYzRjFGM0YlRkFGLkYzRihGJ0ZRKixGMUZBRjJGJ0YlRkFGLkYzRihGJ0Y6KixGMUZBRjVGJ0YlRkFGLkYzRihGJyNGXnFGMyosRjBGJ0YlRidGLUYzRi5GJ0YoRjMhIiUqLEYxRidGJUYnRi1GM0YuRidGKEYzRj0qLEYyRidGJUYnRi1GM0YuRidGKEYzRkYqLEY1RidGJUYnRi1GM0YuRidGKEYzRj0qLEYxRjNGJUYnRi1GM0YuRjNGKEYnRj0qLEYwRjNGJUYnRi1GM0YuRjNGKEYnISM2KixGMEZBRiVGM0YtRidGLkYzRihGJ0ZBKixGMUZBRiVGM0YtRidGLkYzRihGJ0Y9KixGMkYzRiVGM0YtRidGLkYnRihGM0ZCKixGNUYzRiVGM0YtRidGLkYnRihGM0YqKipGMUYrRiVGM0YtRidGLkZBRioqKkYwRitGJUYzRi1GJ0YuRkFGJyosRjBGM0YyRjNGJUZBRi5GM0YoRidGUSosRjBGM0Y1RjNGJUZBRi5GM0YoRidGUSosRjFGM0YyRjNGJUZBRi5GM0YoRidGUSosRjFGM0Y1RjNGJUZBRi5GM0YoRicjIiM4RisqLEYyRjNGNUYzRiVGQUYuRjNGKEYnRicqLEYyRjNGJUYnRi1GM0YuRjNGKEYnISNGKipGMkYnRjVGJ0YlRkFGKEZBRmZxKjBGMEYnRjFGJ0YyRidGNUYnRiVGM0YtRidGLkZBRk8qMEYwRidGMUYnRjVGJ0YlRjNGLUYnRi5GM0YoRidGQiowRjBGJ0YxRidGMkYnRjVGJ0YlRkFGLkYzRihGJ0ZBKi5GMEYnRjFGJ0Y1RidGJUZBRi5GJ0YoRjNGKiouRjJGM0Y1RidGJUYzRi1GJ0YuRjNGKEYnIiM9KixGMEYnRjFGQUYlRjNGLUYnRi5GQUYzKixGMEZBRjFGJ0YlRjNGLUYnRi5GQUY9KixGMkYzRjVGJ0YlRkFGLkYnRihGM0Y9KixGMEYnRjVGQUYlRkFGLkYzRihGJ0YnKixGMkYnRjVGQUYlRkFGLkYzRihGJ0Y9KixGMUYnRjVGQUYlRkFGLkYzRihGJ0ZecSosRjBGJ0YxRkFGJUZBRi5GM0YoRidGZnEqLEYwRidGNUZBRiVGM0YtRidGLkZBRl1vKixGMUYnRjVGQUYlRjNGLUYnRi5GQUZdbyosRjJGJ0Y1RkFGJUYzRi1GJ0YuRkEiIzsqKkY1RitGJUZBRi5GM0YoRidGJyosRjVGQUYlRjNGLUYnRi5GM0YoRidGMyosRjVGM0YlRidGLUYzRi5GM0YoRidGJw== NyNJJXRydWVHJSpwcm90ZWN0ZWRH vars := [FF, k2, E, S, k1, C, k3, k4, C_0, E_0, FF_0, S_0]; R := PolynomialRing(vars); dec := RealTriangularize(F, N, P, H, R); Ny5JI0ZGRzYiSSNrMkdGJEkiRUdGJEkiU0dGJEkjazFHRiRJIkNHRiRJI2szR0YkSSNrNEdGJEkkQ18wR0YkSSRFXzBHRiRJJUZGXzBHRiRJJFNfMEdGJA== STBwb2x5bm9taWFsX3JpbmdHNiI= NyNJPnJlZ3VsYXJfc2VtaV9hbGdlYnJhaWNfc3lzdGVtRzYi
<Text-field style="Text" size="18" bold="true" foreground="[0,0,255]" layout="Heading 3"><Font bold="true" foreground="[0,0,0]" size="18">3.4 Reachibility problem for hybrid systems</Font></Text-field> JSFH The problem is transformed into the following quantifier elimination problem. LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYoLUkobWZlbmNlZEdGJDYkLUYjNictSSNtb0dGJDYtUSkmRXhpc3RzO0YnLyUsbWF0aHZhcmlhbnRHUSdub3JtYWxGJy8lJmZlbmNlR1EmZmFsc2VGJy8lKnNlcGFyYXRvckdGOS8lKXN0cmV0Y2h5R0Y5LyUqc3ltbWV0cmljR0Y5LyUobGFyZ2VvcEdGOS8lLm1vdmFibGVsaW1pdHNHRjkvJSdhY2NlbnRHRjkvJSdsc3BhY2VHUSYwLjBlbUYnLyUncnNwYWNlR1EsMC4yNzc3Nzc4ZW1GJy1GMTYtUSJ+RidGNEY3RjpGPEY+RkBGQkZERkYvRkpGSC1JI21pR0YkNiVRImFGJy8lJ2l0YWxpY0dRJXRydWVGJy9GNVEnaXRhbGljRicvJStleGVjdXRhYmxlR0Y5RjRGNC1GLDYkLUYjNidGMEZMLUZRNiVRInpGJ0ZURldGWUY0RjQtRiw2JC1GIzY3LUZRNiVRI3AxRidGVEZXLUYxNi1RIj1GJ0Y0RjdGOkY8Rj5GQEZCRkQvRkdGS0ZJLUkjbW5HRiQ2JFEiMEYnRjRGTC1GMTYtUSYmYW5kO0YnRjRGN0Y6L0Y9RlZGPkZARkJGRC9GR1EsMC4yMjIyMjIyZW1GJy9GSkZgcEZMLUZRNiVRI3AyRidGVEZXRmNvRmdvRkxGW3BGUC1GMTYtUS8mR3JlYXRlckVxdWFsO0YnRjRGN0Y6RjxGPkZARkJGREZmb0ZJRmdvRkwtRjE2LVEoJndlZGdlO0YnRjRGN0Y6RjxGPkZARkJGRC9GR1EsMC4xNjY2NjY3ZW1GJy9GSkZccUZpbkZlcC1GaG82JFEiMUYnRjRGWUY0RjRGTEZZRjQ=where restart;p1:=y1-2/3*a*(z-z^4);p2:=y2*z^2-1/2*a*(z^4-1); SSV0cnVlRyUqcHJvdGVjdGVkRw== LCZJI3kxRzYiIiIiKiZJImFHRiRGJSwmSSJ6R0YkRiUqJEYpIiIlISIiRiUjISIjIiIk LCYqJkkjeTJHNiIiIiJJInpHRiUiIiNGJiomSSJhR0YlRiYsJiokRiciIiVGJiEiIkYmRiYjRi5GKA== Decompose the system LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzY2LUkjbWlHRiQ2JVEjcDFGJy8lJ2l0YWxpY0dRJXRydWVGJy8lLG1hdGh2YXJpYW50R1EnaXRhbGljRictSSNtb0dGJDYtUSI9RicvRjNRJ25vcm1hbEYnLyUmZmVuY2VHUSZmYWxzZUYnLyUqc2VwYXJhdG9yR0Y9LyUpc3RyZXRjaHlHRj0vJSpzeW1tZXRyaWNHRj0vJShsYXJnZW9wR0Y9LyUubW92YWJsZWxpbWl0c0dGPS8lJ2FjY2VudEdGPS8lJ2xzcGFjZUdRLDAuMjc3Nzc3OGVtRicvJSdyc3BhY2VHRkwtSSNtbkdGJDYkUSIwRidGOS1GNjYtUSJ+RidGOUY7Rj5GQEZCRkRGRkZIL0ZLUSYwLjBlbUYnL0ZORlctRjY2LVEmJmFuZDtGJ0Y5RjtGPi9GQUYxRkJGREZGRkgvRktRLDAuMjIyMjIyMmVtRicvRk5GaG5GUy1GLDYlUSNwMkYnRi9GMkY1Rk9GU0ZZLUYsNiVRImFGJ0YvRjItRjY2LVEvJkdyZWF0ZXJFcXVhbDtGJ0Y5RjtGPkZARkJGREZGRkhGSkZNRk9GUy1GNjYtUSgmd2VkZ2U7RidGOUY7Rj5GQEZCRkRGRkZIL0ZLUSwwLjE2NjY2NjdlbUYnL0ZORmdvLUYsNiVRInpGJ0YvRjJGYG8tRlA2JFEiMUYnRjlGOQ== with RealTriangularize. The output consists of five regular semi-algebraic systems. R := PolynomialRing([z, a, y1, y2]); rtd := RealTriangularize([p1=0, p2=0, a>=0,z-1>=0], R); Display(rtd, R): STBwb2x5bm9taWFsX3JpbmdHNiI= NydJPnJlZ3VsYXJfc2VtaV9hbGdlYnJhaWNfc3lzdGVtRzYiRiNGI0YjRiM= r1 := rtd[1]; Display(r1, R); ST5yZWd1bGFyX3NlbWlfYWxnZWJyYWljX3N5c3RlbUc2Ig== LUkqUElFQ0VXSVNFRzYkJSpwcm90ZWN0ZWRHSShfc3lzbGliRzYiNic3JC1JJW1yb3dHNiRGJS9JK21vZHVsZW5hbWVHRidJLFR5cGVzZXR0aW5nR0YkNiUtRis2LS1GKzYlLUkobWZlbmNlZEdGLDYjLUYrNiotSSNtb0dGLDYjUSomdW1pbnVzMDtGJy1GKzYlLUkjbW5HRiw2I1EiOEYnLUY7NiNRMSZJbnZpc2libGVUaW1lcztGJy1GKzYlLUklbXN1cEdGLDYkLUkjbWlHRiw2I1EiYUYnLUZBNiNRIjNGJ0ZELUZNNiNRI3kyRictRjs2I1EoJm1pbnVzO0YnLUYrNiUtRkE2I1EjMTJGJ0ZELUYrNictRko2JEZMLUZBNiNRIjJGJ0ZELUZNNiNRI3kxRidGREZTRlYtRis2JS1GQTYjUSMxNkYnRkQtRis2JUZMRkQtRko2JEZTRlAtRjs2I1EnJnBsdXM7RictRis2JUZcb0ZELUZKNiRGTC1GQTYjUSI0RidGRC1GTTYjUSJ6RidGVkZecEZbcC1GKzYlLUY2NiMtRis2JS1GKzYlRmJwRkRGU0ZWLUYrNiVGUEZERl9vRkRGSUZbcC1GKzYpRmVuRkRGam5GREZfb0ZERlNGW3AtRis2KS1GQTYjUSI5RidGREZMRkQtRko2JEZfb0Zcb0ZERlNGW3AtRis2Jy1GQTYjUSMyNEYnRkRGX29GREZpby1GOzYjUSkmZXF1YWxzO0YnLUZBNiNRIjBGJ0khR0YnNyQtRis2JS1GKzYtLUYrNiUtRjY2Iy1GKzYlLUYrNiUtRkE2I1EjOTZGJ0ZERlNGW3AtRis2JUZkc0ZERl9vRkQtRko2JEZMLUZBNiNRIjVGJ0ZbcC1GKzYlLUY2NiMtRis2JS1GKzYlLUZBNiNRJDIxNkYnRkRGaXFGW3AtRis2JUZkc0ZELUYrNiVGX29GREZTRkRGYHBGW3AtRis2JS1GNjYjLUYrNiktRis2JUZmdEZELUZKNiRGX29GUEZWLUYrNiUtRkE2I1EjNzJGJ0ZELUYrNiVGaXFGREZTRltwLUYrNiUtRkE2I1EkMTkyRidGRC1GKzYlRl9vRkQtRko2JEZTRlxvRltwLUYrNiUtRkE2I1EkMTI4RidGREZpb0ZERklGW3AtRis2JS1GNjYjLUYrNiUtRis2JS1GQTYjUSM4MUYnRkQtRko2JEZfb0ZicEZbcC1GKzYlLUZBNiNRJDU3NkYnRkQtRis2JUZpcUZERmV2RkRGam5GW3AtRis2KS1GQTYjUSQ0MzJGJ0ZERmV1RkRGZXZGREZMRltwLUYrNidGW3hGREZpcUZELUZKNiRGU0ZicEZgckZjckZmcjckLUYrNiUtRis2JUZlcEZWLUZBNiNRIjFGJy1GOzYjUSUmZ3Q7RidGY3JGZnI3JC1GKzYlRkxGYXlGY3JGZnI3JDMzMy1GKzYlLUYrNiVGX29GW3BGUy1GOzYjUSUmbHQ7RidGY3ItRis2JUZTRmF5RmNyLUYrNiVGX28tRjs2I1ElJm5lO0YnRmNyLUYrNiUtRis2LS1GKzYlRlBGRC1GSjYkRl9vRlt0RlYtRis2JS1GQTYjUSI2RidGRC1GKzYlRlNGREZnd0ZWLUYrNiUtRkE2I1EjNjNGJ0ZELUYrNiVGZXZGREZldUZbcC1GKzYlRmB2RkQtRis2JUZpb0ZERmlxRltwLUYrNiUtRkE2I1EkMTEyRidGRC1GKzYlRmd4RkRGX29GW3AtRis2JUZkb0ZELUZKNiRGU0ZbdEZmekZjckZmcg== r2 := rtd[2]; Display(r2, R); ST5yZWd1bGFyX3NlbWlfYWxnZWJyYWljX3N5c3RlbUc2Ig== LUkqUElFQ0VXSVNFRzYkJSpwcm90ZWN0ZWRHSShfc3lzbGliRzYiNig3JC1JJW1yb3dHNiRGJS9JK21vZHVsZW5hbWVHRidJLFR5cGVzZXR0aW5nR0YkNiUtRis2LS1GKzYlLUkobWZlbmNlZEdGLDYjLUYrNiotSSNtb0dGLDYjUSomdW1pbnVzMDtGJy1GKzYlLUkjbW5HRiw2I1EiOEYnLUY7NiNRMSZJbnZpc2libGVUaW1lcztGJy1GKzYlLUklbXN1cEdGLDYkLUkjbWlHRiw2I1EiYUYnLUZBNiNRIjNGJ0ZELUZNNiNRI3kyRictRjs2I1EoJm1pbnVzO0YnLUYrNiUtRkE2I1EjMTJGJ0ZELUYrNictRko2JEZMLUZBNiNRIjJGJ0ZELUZNNiNRI3kxRidGREZTRlYtRis2JS1GQTYjUSMxNkYnRkQtRis2JUZMRkQtRko2JEZTRlAtRjs2I1EnJnBsdXM7RictRis2JUZcb0ZELUZKNiRGTC1GQTYjUSI0RidGRC1GTTYjUSJ6RidGVkZecEZbcC1GKzYlLUY2NiMtRis2JS1GKzYlRmJwRkRGU0ZWLUYrNiVGUEZERl9vRkRGSUZbcC1GKzYpRmVuRkRGam5GREZfb0ZERlNGW3AtRis2KS1GQTYjUSI5RidGREZMRkQtRko2JEZfb0Zcb0ZERlNGW3AtRis2Jy1GQTYjUSMyNEYnRkRGX29GREZpby1GOzYjUSkmZXF1YWxzO0YnLUZBNiNRIjBGJ0khR0YnNyQtRis2JS1GKzYzLUYrNiUtRjY2Iy1GKzYrLUYrNiUtRkE2I1FQNTk5NDIwMTk0OTYyNDgxNzEyOTk4NDM2OTc2OTY0MTg3MzU3MDY2MjM3ODM5MzZGJ0ZELUYrNiVGX29GREZpb0ZbcC1GKzYlLUZBNiNRUDkzNDM5OTcxNjU3NDk5MzgzNjgwOTc0NjA5NDczNjE1MTcyMjY4MTIyMzU0MTc2RidGRC1GKzYlRmlxRkQtRko2JEZTRlxvRlYtRis2JS1GQTYjUVA1NDE3NzUyMjU4ODA4NjkyNDU5MTU3NzkyNjE5MzcwODMyMzAzMzkxMTAyMzIxNkYnRkQtRis2JS1GSjYkRl9vRlBGREZTRltwLUYrNiUtRkE2I1FPODgyNTI5MzMyNDg2OTU2ODU2Nzg0MzEyMTg4MTIyNzc1MjM0MjkzMjAwMzA3MkYnRkQtRko2JEZTRmJwRltwLUYrNiUtRkE2I1FPNzk1NzMzMTIyODMzNjA3MTYwNTU3NTAwMDk2MTAxMDA2MTkzMTUwNDMyNTg3MkYnRkQtRko2JEZfb0ZicEZERmBwRltwLUYrNiUtRjY2Iy1GKzYsRjotRis2JS1GQTYjUVE2NjY3NjgyMjI3NjI2NTM0OTQyMzUxODUxODA0NTYzODc0Nzg1NDA1NDM1OTUyMDBGJ0ZELUYrNiVGYHVGREZfb0ZWLUYrNiUtRkE2I1FQODg1MDc3OTYwOTIxMzQwMDk2MTE1MjAxNzU0ODQ1MDM0MTQxMzcyNDExNDg4MjBGJ0ZELUYrNiVGU0ZERmd1RlYtRis2JS1GQTYjUVA5ODE2ODg0OTI2ODgzOTU1OTE3ODU1MDc2ODg5MTAyMTg5MDA5MjE1MTczOTI2NEYnRkQtRko2JEZTLUZBNiNRIjVGJ0ZbcC1GKzYlLUZBNiNRUTYwMjY3MzIzMzQ0ODcwNjQwNTUyNTI2NDAwMTI1NzYwNTg3MzYzNzMxNzk4NDY0OEYnRkQtRis2JUZgdEZERml0RlYtRis2JS1GQTYjUVIxMDM5Mzc1MDExODE2NTA1MTgyNTIwNTY5MTY0NjMzMjg4MjAxMzQxNDIxMTMxOTY4RidGRC1GKzYlRmlvRkRGaXFGREZJRltwLUYrNiUtRjY2Iy1GKzYrLUYrNiUtRkE2I1FSMzQ5MDk2NzAzMDU1OTIzNTA5Njg2MjQ3MDUyOTMwNDY2Njg4NDgzODM4MzQ4Njk3NkYnRkQtRis2JUZfb0ZERmJ3RltwLUYrNiUtRkE2I1FRNTEzOTc5NDYzNTc0OTc5MDExMzIxMzEwNzcwNDU3NzgzMDExMjU4MTk5ODkzNDU2RidGRC1GSjYkRlMtRkE2I1EiNkYnRltwLUYrNiUtRkE2I1FSNTQ0MTc1NTk0Nzk5MjMxMDYxMzQwMDM5NTY1OTE4NzU2NzIwMTU2MDUyNTQyOTYwMEYnRkQtRis2JUZpcUZERmB1RltwLUYrNiUtRkE2I1FRNDYzNDYzMjYxMjUwODcyMDM4MTc1NDI1MzI0NDc5MzExNDY4OTI2NDA3NjUwNjYzRidGRC1GKzYlRmd1RkRGYHRGVi1GKzYlLUZBNiNRUjMxNTU0OTg1OTE0NTk0MTg2NjIyODMxNzAxMzQzMzM1NjE2Mzk1OTA1NzM5NzU5MDdGJ0ZELUYrNiVGaXRGREZpb0ZERmpuRltwLUYrNiUtRjY2Iy1GKzYsRjotRis2JS1GQTYjUVI3NTM2Nzk2ODI4Nzg1Mjg4MzA5NDM5OTQ3ODUxNDY3MjA1Nzc4MTI0NTY5MjkwNzUyRidGRC1GKzYlRmlxRkRGYndGVi1GKzYlLUZBNiNRUjQ4MzQ4OTg3MDkzMzgzNDU2NDk4NTc5OTgxOTk2NzIyOTg4NDI1NDI1ODIyMzE1NTJGJ0ZELUYrNiVGX29GREZneUZWLUYrNiUtRkE2I1FRNjQxNzg5MjIzODY3ODkxNDAxOTYwMzg3MzY0NzA2MzY1NzE4MDg3ODAzMjk1NDQwRidGRC1GKzYlRmd1RkRGaW9GVi1GKzYlLUZBNiNRUTcxMTg0NTMwNDY2MTAxNjkzMTUyMDQxNjI5ODkyODc2MDI3NTY1NzcxOTE3NTQyNEYnRkQtRko2JEZTLUZBNiNRIjdGJ0ZbcC1GKzYlLUZBNiNRUjQzNzAwMzgxNTg3NzU4NTEwMzAyNDIwODk0MjM4NzY0ODY1MTIyNTM1NTE2OTM5MzZGJ0ZELUYrNiVGaXRGREZgdUZERkxGVi1GKzYnLUZBNiNRUjE1NDg1MTc1MDUyNTgzMDYxNjk5NTkyNDgzMzI2ODQ5MzUyNDc0MDg3NzE0MjEyNDhGJ0ZERml0RkRGYndGW3AtRis2Jy1GQTYjUVIyNjcwNDg3NzI5NjcyMDI5NTcxMTc0ODU3MjI2ODQ4Mjc4OTQ2Mzc1OTE4OTI1ODI0RidGREZpcUZERmd5RltwLUYrNictRkE2I1FSMTcxMzE1NTA0NjY5MDQ1MjEzODQ5ODYzMDM4NDQ3NjMxODgxNzM0NTU0NjMxNzgyNEYnRkRGX29GREZhXWxGW3AtRis2Jy1GQTYjUVEyMjc0NDA0ODEzODkxODI2MDE4MjQ0Mzg1OTU2NTUyNDY2NzczNzUxMTE1NTQ2MjRGJ0ZERmd1RkRGYHVGW3AtRis2JS1GQTYjUVEyNTIyMjk4NzY2MTkzOTg4Nzk0MjY5MjA3MDU2MDQ2NzkyMjM0MzA4NzY0MTI5MjhGJ0ZELUZKNiRGU0ZARmByRmNyRmZyNyQtRis2JS1GKzYtLUYrNiVGUEZELUZKNiRGX29GZHdGVi1GKzYlRml5RkRGW3dGVi1GKzYlLUZBNiNRIzYzRidGREZceEZbcC1GKzYlLUZBNiNRJDE5MkYnRkRGY3hGW3AtRis2JS1GQTYjUSQxMTJGJ0ZERmR2RltwLUYrNiVGZG9GREZid0ZgckZjckZmcjckLUYrNiUtRis2JUZlcEZWLUZBNiNRIjFGJy1GOzYjUSUmZ3Q7RidGY3JGZnI3JC1GKzYlRkxGXGJsRmNyRmZyNyQtRis2JUZTRlxibEZjckZmcg== R12 := PolynomialRing([y1, y2]); p := 3*y1^5-6*y2*y1^4-63*y2^2*y1^3+192*y2^3*y1^2+112*y2^4*y1+16*y2^5; SamplePoints([p=0, y2>0], R12); STBwb2x5bm9taWFsX3JpbmdHNiI= LC4qJEkjeTFHNiIiIiYiIiQqJkkjeTJHRiUiIiJGJCIiJSEiJyomRikiIiNGJEYnISNqKiZGKUYnRiRGLiIkIz4qJkYpRitGJEYqIiQ3IiokRilGJiIjOw== NyNJJGJveEc2Ig== r3 := rtd[3]; Display(r3, R); r4 := rtd[4]; Display(r4, R); r4 := rtd[4]; Display(r4, R); ST5yZWd1bGFyX3NlbWlfYWxnZWJyYWljX3N5c3RlbUc2Ig== LUkqUElFQ0VXSVNFRzYkJSpwcm90ZWN0ZWRHSShfc3lzbGliRzYiNiY3JC1JJW1yb3dHNiRGJS9JK21vZHVsZW5hbWVHRidJLFR5cGVzZXR0aW5nR0YkNiUtRis2JS1JI21pR0YsNiNRInpGJy1JI21vR0YsNiNRKCZtaW51cztGJy1JI21uR0YsNiNRIjFGJy1GODYjUSkmZXF1YWxzO0YnLUY8NiNRIjBGJ0khR0YnNyQtRis2JS1GNDYjUSJhRidGP0ZCRkU3JC1GKzYlLUY0NiNRI3kxRidGP0ZCRkU3JC1GKzYlLUY0NiNRI3kyRidGP0ZCRkU= ST5yZWd1bGFyX3NlbWlfYWxnZWJyYWljX3N5c3RlbUc2Ig== LUkqUElFQ0VXSVNFRzYkJSpwcm90ZWN0ZWRHSShfc3lzbGliRzYiNiY3JC1JJW1yb3dHNiRGJS9JK21vZHVsZW5hbWVHRidJLFR5cGVzZXR0aW5nR0YkNiUtRis2JS1JI21pR0YsNiNRInpGJy1JI21vR0YsNiNRKCZtaW51cztGJy1JI21uR0YsNiNRIjFGJy1GODYjUSkmZXF1YWxzO0YnLUY8NiNRIjBGJ0khR0YnNyQtRis2JS1GNDYjUSN5MUYnRj9GQkZFNyQtRis2JS1GNDYjUSN5MkYnRj9GQkZFNyQtRis2JS1GNDYjUSJhRictRjg2I1ElJmd0O0YnRkJGRQ== ST5yZWd1bGFyX3NlbWlfYWxnZWJyYWljX3N5c3RlbUc2Ig== LUkqUElFQ0VXSVNFRzYkJSpwcm90ZWN0ZWRHSShfc3lzbGliRzYiNiY3JC1JJW1yb3dHNiRGJS9JK21vZHVsZW5hbWVHRidJLFR5cGVzZXR0aW5nR0YkNiUtRis2JS1JI21pR0YsNiNRInpGJy1JI21vR0YsNiNRKCZtaW51cztGJy1JI21uR0YsNiNRIjFGJy1GODYjUSkmZXF1YWxzO0YnLUY8NiNRIjBGJ0khR0YnNyQtRis2JS1GNDYjUSN5MUYnRj9GQkZFNyQtRis2JS1GNDYjUSN5MkYnRj9GQkZFNyQtRis2JS1GNDYjUSJhRictRjg2I1ElJmd0O0YnRkJGRQ== So after simplification, our final result is LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYpLUkobWZlbmNlZEdGJDYkLUYjNjAtSSNtaUdGJDYlUSN5MkYnLyUnaXRhbGljR1EldHJ1ZUYnLyUsbWF0aHZhcmlhbnRHUSdpdGFsaWNGJy1JI21vR0YkNi1RIj5GJy9GOFEnbm9ybWFsRicvJSZmZW5jZUdRJmZhbHNlRicvJSpzZXBhcmF0b3JHRkIvJSlzdHJldGNoeUdGQi8lKnN5bW1ldHJpY0dGQi8lKGxhcmdlb3BHRkIvJS5tb3ZhYmxlbGltaXRzR0ZCLyUnYWNjZW50R0ZCLyUnbHNwYWNlR1EsMC4yNzc3Nzc4ZW1GJy8lJ3JzcGFjZUdGUS1JI21uR0YkNiRRIjBGJ0Y+LUY7Ni1RIn5GJ0Y+RkBGQ0ZFRkdGSUZLRk0vRlBRJjAuMGVtRicvRlNGZm4tRjs2LVEoJndlZGdlO0YnRj5GQEZDRkVGR0ZJRktGTS9GUFEsMC4xNjY2NjY3ZW1GJy9GU0Zcb0ZYLUYxNiVRI3kxRidGNEY3LUY7Ni1RIitGJ0Y+RkBGQ0ZFRkdGSUZLRk0vRlBRLDAuMjIyMjIyMmVtRicvRlNGZW9GMC1GOzYtUSI8RidGPkZARkNGRUZHRklGS0ZNRk9GUkZULyUrZXhlY3V0YWJsZUdGQi8lMGZvbnRfc3R5bGVfbmFtZUdRKDJEfk1hdGhGJ0Y+Rj5GWC1GOzYtUSUmb3I7RidGPkZARkMvRkZGNkZHRklGS0ZNRmRvRmZvLUYsNiQtRiM2KkZeby1GOzYtUSI9RidGPkZARkNGRUZHRklGS0ZNRk9GUkYwRmdwRlRGam9GXHBGPkY+RmpvRlxwRj4= print(); # input placeholder .
<Text-field style="Heading 2" layout="Heading 2">3.5. The mad-cow disease example</Text-field> LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYqLUkjbWlHRiQ2JVEocmVzdGFydEYnLyUnaXRhbGljR1EldHJ1ZUYnLyUsbWF0aHZhcmlhbnRHUSdpdGFsaWNGJy1JI21vR0YkNi1RIjpGJy9GM1Enbm9ybWFsRicvJSZmZW5jZUdRJmZhbHNlRicvJSpzZXBhcmF0b3JHRj0vJSlzdHJldGNoeUdGPS8lKnN5bW1ldHJpY0dGPS8lKGxhcmdlb3BHRj0vJS5tb3ZhYmxlbGltaXRzR0Y9LyUnYWNjZW50R0Y9LyUnbHNwYWNlR1EsMC4yNzc3Nzc4ZW1GJy8lJ3JzcGFjZUdGTC1GNjYtUSJ+RidGOUY7Rj5GQEZCRkRGRkZIL0ZLUSYwLjBlbUYnL0ZORlMtRiw2JVEld2l0aEYnRi9GMi1JKG1mZW5jZWRHRiQ2JC1GIzYlLUYsNiVRLlJlZ3VsYXJDaGFpbnNGJ0YvRjIvJStleGVjdXRhYmxlR0Y9RjlGOS1GNjYtUSI7RidGOUY7L0Y/RjFGQEZCRkRGRkZIRlJGTUZqbkY5 LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzZmby1JI21pR0YkNiVRI2YxRicvJSdpdGFsaWNHUSV0cnVlRicvJSxtYXRodmFyaWFudEdRJ2l0YWxpY0YnLUkjbW9HRiQ2LVEifkYnL0YzUSdub3JtYWxGJy8lJmZlbmNlR1EmZmFsc2VGJy8lKnNlcGFyYXRvckdGPS8lKXN0cmV0Y2h5R0Y9LyUqc3ltbWV0cmljR0Y9LyUobGFyZ2VvcEdGPS8lLm1vdmFibGVsaW1pdHNHRj0vJSdhY2NlbnRHRj0vJSdsc3BhY2VHUSYwLjBlbUYnLyUncnNwYWNlR0ZMLUY2Ni1RKiZjb2xvbmVxO0YnRjlGO0Y+RkBGQkZERkZGSC9GS1EsMC4yNzc3Nzc4ZW1GJy9GTkZTRjUtRiw2JVEjazFGJ0YvRjItRjY2LVEqJnVtaW51czA7RidGOUY7Rj5GQEZCRkRGRkZIL0ZLUSwwLjIyMjIyMjJlbUYnL0ZORmZuLUYsNiVRI2syRidGL0YyLUY2Ni1RIipGJ0Y5RjtGPkZARkJGREZGRkgvRktRLDAuMTY2NjY2N2VtRicvRk5GX28tRiw2JVEieEYnRi9GMkZYRmFvRltvLUYsNiVRImFGJ0YvRjJGW28tSShtZmVuY2VkR0YkNiQtRiM2Ky1JI21uR0YkNiRRIjFGJ0Y5LUY2Ni1RIitGJ0Y5RjtGPkZARkJGREZGRkhGZW5GZ24tRiw2JVEiYkYnRi9GMkZbby1GLDYlUSJ5RidGL0YyLUY2Ni1RIl5GJ0Y5RjtGPkZARkJGREZGRkgvRktRLDAuMTExMTExMWVtRicvRk5GXXEtRiw2JVEibkYnRi9GMi8lK2V4ZWN1dGFibGVHRj1GOUY5LUY2Ni1RIi9GJ0Y5RjtGPi9GQUYxRkJGREZGRkhGXm9GYG8tRmhvNiQtRiM2K0ZccEZgcC1GLDYlUSJjRidGL0YyRltvRmZwRmlwRl9xRmJxRjlGOS1GNjYtUSI7RidGOUY7L0Y/RjFGQEZCRkRGRkZIRkpGVC1JJ21zcGFjZUdGJDYmLyUnaGVpZ2h0R1EmMC4wZXhGJy8lJndpZHRoR0ZMLyUmZGVwdGhHRmhyLyUqbGluZWJyZWFrR1EobmV3bGluZUYnLUZkcjYmRmZyRmlyRltzL0Zec1ElYXV0b0YnLUYsNiVRI2YyRidGL0YyRjVGT0Y1RmFvRltvRmRvRltvRmdvRmRxRmhxRlgtRiw2JVEjazRGJ0YvRjJGW29GZnBGX3JGY3JGYHNGK0Y1Rk9GNS1GLDYlUSVzdWJzRidGL0YyLUZobzYkLUYjNkdGY3AtRjY2LVEiPUYnRjlGO0Y+RkBGQkZERkZGSEZSRlQtRl1wNiRRIjJGJ0Y5LUY2Ni1RIixGJ0Y5RjtGYnJGQEZCRkRGRkZIRkovRk5RLDAuMzMzMzMzM2VtRidGNUZcckZhdEZccEZkcS1GXXA2JFEjMjBGJ0Y5Rmd0RjVGX3FGYXQtRl1wNiRRIjRGJ0Y5Rmd0RjVGZG9GYXRGXHBGZHEtRl1wNiRRIzEwRidGOUZndEY1RmdzRmF0LUZdcDYkUSM1MEYnRjlGZ3RGNUZVRmF0LUZdcDYkUSQ4MDBGJ0Y5Rmd0RjVGK0ZicUY5RjlGX3JGY3JGYHNGZHNGNUZPRjVGanMtRmhvNiQtRiM2R0ZjcEZhdEZkdEZndEY1RlxyRmF0RlxwRmRxRlx1Rmd0RjVGX3FGYXRGX3VGZ3RGNUZkb0ZhdEZccEZkcUZidUZndEY1RmdzRmF0RmV1Rmd0RjVGVUZhdEZodUZndEY1RmRzRmJxRjlGOUZfckZjckZgcy1GLDYlUSNwMUYnRi9GMkY1Rk9GNS1GLDYlUSZudW1lckYnRi9GMi1GaG82JC1GIzYlRitGYnFGOUY5Rl9yRmNyRmBzLUYsNiVRI3AyRidGL0YyRjVGT0Y1RmJ2LUZobzYkLUYjNiVGZHNGYnFGOUY5Rl9yRmJxRjk= LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzZSLUkjbWlHRiQ2JVEkZXFzRicvJSdpdGFsaWNHUSV0cnVlRicvJSxtYXRodmFyaWFudEdRJ2l0YWxpY0YnLUkjbW9HRiQ2LVEifkYnL0YzUSdub3JtYWxGJy8lJmZlbmNlR1EmZmFsc2VGJy8lKnNlcGFyYXRvckdGPS8lKXN0cmV0Y2h5R0Y9LyUqc3ltbWV0cmljR0Y9LyUobGFyZ2VvcEdGPS8lLm1vdmFibGVsaW1pdHNHRj0vJSdhY2NlbnRHRj0vJSdsc3BhY2VHUSYwLjBlbUYnLyUncnNwYWNlR0ZMLUY2Ni1RKiZjb2xvbmVxO0YnRjlGO0Y+RkBGQkZERkZGSC9GS1EsMC4yNzc3Nzc4ZW1GJy9GTkZTRjUtSShtZmVuY2VkR0YkNiYtRiM2KC1GLDYlUSNwMUYnRi9GMi1GNjYtUSIsRidGOUY7L0Y/RjFGQEZCRkRGRkZIRkovRk5RLDAuMzMzMzMzM2VtRidGNS1GLDYlUSNwMkYnRi9GMi8lK2V4ZWN1dGFibGVHRj1GOUY5LyUlb3BlbkdRIltGJy8lJmNsb3NlR1EiXUYnLUY2Ni1RIjtGJ0Y5RjtGam5GQEZCRkRGRkZIRkpGVC1JJ21zcGFjZUdGJDYmLyUnaGVpZ2h0R1EmMC4wZXhGJy8lJndpZHRoR0ZMLyUmZGVwdGhHRmBwLyUqbGluZWJyZWFrR1EobmV3bGluZUYnLUZccDYmRl5wRmFwRmNwL0ZmcFElYXV0b0YnLUYsNiVRJXZhcnNGJ0YvRjJGNUZPRjUtRlY2Ji1GIzYrLUYsNiVRInhGJ0YvRjJGZ25GNS1GLDYlUSJ5RidGL0YyRmduRjUtRiw2JVEjazJGJ0YvRjJGYG9GOUY5RmJvRmVvRmhvRltwRmhwLUYsNiVRJHBpZUYnRi9GMkY1Rk9GNS1GVjYmLUYjNiVGaXFGYG9GOUY5RmJvRmVvRmhvRltwRmhwLUYsNiVRJG5pZUYnRi9GMkY1Rk9GNS1GVjYmLUYjNiUtRiw2I1EhRidGYG9GOUY5RmJvRmVvRmhvRltwRmhwLUYsNiVRJmluZXFzRidGL0YyRjVGT0Y1RmZyRmhvRltwRmhwLUYsNiVRJ3BhcmFtc0YnRi9GMkY1Rk9GNS1GVjYmRmhyRjkvRmNvUSJ8ZnJGJy9GZm9RInxockYnRmhvRmBvRjk= LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzY0LUkjbWlHRiQ2JVEiUkYnLyUnaXRhbGljR1EldHJ1ZUYnLyUsbWF0aHZhcmlhbnRHUSdpdGFsaWNGJy1JI21vR0YkNi1RIn5GJy9GM1Enbm9ybWFsRicvJSZmZW5jZUdRJmZhbHNlRicvJSpzZXBhcmF0b3JHRj0vJSlzdHJldGNoeUdGPS8lKnN5bW1ldHJpY0dGPS8lKGxhcmdlb3BHRj0vJS5tb3ZhYmxlbGltaXRzR0Y9LyUnYWNjZW50R0Y9LyUnbHNwYWNlR1EmMC4wZW1GJy8lJ3JzcGFjZUdGTC1GNjYtUSomY29sb25lcTtGJ0Y5RjtGPkZARkJGREZGRkgvRktRLDAuMjc3Nzc3OGVtRicvRk5GU0Y1LUYsNiVRL1BvbHlub21pYWxSaW5nRidGL0YyLUkobWZlbmNlZEdGJDYkLUYjNiUtRiw2JVEldmFyc0YnRi9GMi8lK2V4ZWN1dGFibGVHRj1GOUY5LUY2Ni1RIjtGJ0Y5RjsvRj9GMUZARkJGREZGRkhGSkZULUknbXNwYWNlR0YkNiYvJSdoZWlnaHRHUSYwLjBleEYnLyUmd2lkdGhHRkwvJSZkZXB0aEdGZW8vJSpsaW5lYnJlYWtHUShuZXdsaW5lRictRmFvNiZGY29GZm9GaG8vRltwUSVhdXRvRictRiw2JVEkZGVjRidGL0YyRjVGT0Y1LUYsNiVRMlJlYWxUcmlhbmd1bGFyaXplRidGL0YyLUZZNiQtRiM2Ni1GLDYlUSRlcXNGJ0YvRjItRjY2LVEiLEYnRjlGO0Zfb0ZARkJGREZGRkhGSi9GTlEsMC4zMzMzMzMzZW1GJ0Y1LUYsNiVRJG5pZUYnRi9GMkZecUY1LUYsNiVRJHBpZUYnRi9GMkZecUY1LUYsNiVRJmluZXFzRidGL0YyRl5xRjVGK0ZecUY1LUYsNiVRJ291dHB1dEYnRi9GMi1GNjYtUSI9RidGOUY7Rj5GQEZCRkRGRkZIRlJGVC1GLDYlUSdyZWNvcmRGJ0YvRjJGam5GOUY5RlxvRmpuRjk= LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzZXLUkjbWlHRiQ2JVEjRDFGJy8lJ2l0YWxpY0dRJXRydWVGJy8lLG1hdGh2YXJpYW50R1EnaXRhbGljRictSSNtb0dGJDYtUSJ+RicvRjNRJ25vcm1hbEYnLyUmZmVuY2VHUSZmYWxzZUYnLyUqc2VwYXJhdG9yR0Y9LyUpc3RyZXRjaHlHRj0vJSpzeW1tZXRyaWNHRj0vJShsYXJnZW9wR0Y9LyUubW92YWJsZWxpbWl0c0dGPS8lJ2FjY2VudEdGPS8lJ2xzcGFjZUdRJjAuMGVtRicvJSdyc3BhY2VHRkwtRjY2LVEqJmNvbG9uZXE7RidGOUY7Rj5GQEZCRkRGRkZIL0ZLUSwwLjI3Nzc3NzhlbUYnL0ZORlNGNS1GNjYtUSomdW1pbnVzMDtGJ0Y5RjtGPkZARkJGREZGRkgvRktRLDAuMjIyMjIyMmVtRicvRk5GWS1JKG1mZW5jZWRHRiQ2JC1GIzYpLUYsNiVRJWRpZmZGJ0YvRjItRmZuNiQtRiM2KC1GLDYlUSNmMUYnRi9GMi1GNjYtUSIsRidGOUY7L0Y/RjFGQEZCRkRGRkZIRkovRk5RLDAuMzMzMzMzM2VtRidGNS1GLDYlUSJ4RidGL0YyLyUrZXhlY3V0YWJsZUdGPUY5RjktRjY2LVEiK0YnRjlGO0Y+RkBGQkZERkZGSEZYRlpGam4tRmZuNiQtRiM2KC1GLDYlUSNmMkYnRi9GMkZkb0Y1LUYsNiVRInlGJ0YvRjJGXXBGOUY5Rl1wRjlGOS1GNjYtUSI7RidGOUY7RmdvRkBGQkZERkZGSEZKRlQtSSdtc3BhY2VHRiQ2Ji8lJ2hlaWdodEdRJjAuMGV4RicvJSZ3aWR0aEdGTC8lJmRlcHRoR0ZkcS8lKmxpbmVicmVha0dRKG5ld2xpbmVGJy1GYHE2JkZicUZlcUZncS9GanFRJWF1dG9GJy1GLDYlUSNEMkYnRi9GMkY1Rk9GNUZqbkZdby1GNjYtUSIqRidGOUY7Rj5GQEZCRkRGRkZIL0ZLUSwwLjE2NjY2NjdlbUYnL0ZORmdyRmpuRmJwRlVGam4tRmZuNiQtRiM2KEZhb0Zkb0Y1RmlwRl1wRjlGOUZjckZqbi1GZm42JC1GIzYoRmZwRmRvRjVGam9GXXBGOUY5RlxxRl9xRlxyRitGNUZPRjUtRiw2JVEmbnVtZXJGJ0YvRjItRmZuNiQtRiM2Ji1GLDYlRjpGL0YyLUZmbjYkLUYjNiVGK0ZdcEY5RjlGXXBGOUY5RlxxRl9xRlxyRmByRjVGT0Y1RmFzLUZmbjYkLUYjNiZGaHMtRmZuNiQtRiM2JUZgckZdcEY5RjlGXXBGOUY5RlxxRl9xRlxyLUYsNiVRJHBpZUYnRi9GMkY1Rk9GNS1GZm42Ji1GIzYrRitGZG9GNUZgckZkb0Y1LUYsNiVRI2syRidGL0YyRl1wRjlGOS8lJW9wZW5HUSJbRicvJSZjbG9zZUdRIl1GJ0ZccUZdcEY5 LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYwLUkjbWlHRiQ2JVEkc3BzRicvJSdpdGFsaWNHUSV0cnVlRicvJSxtYXRodmFyaWFudEdRJ2l0YWxpY0YnLUkjbW9HRiQ2LVEifkYnL0YzUSdub3JtYWxGJy8lJmZlbmNlR1EmZmFsc2VGJy8lKnNlcGFyYXRvckdGPS8lKXN0cmV0Y2h5R0Y9LyUqc3ltbWV0cmljR0Y9LyUobGFyZ2VvcEdGPS8lLm1vdmFibGVsaW1pdHNHRj0vJSdhY2NlbnRHRj0vJSdsc3BhY2VHUSYwLjBlbUYnLyUncnNwYWNlR0ZMLUY2Ni1RKiZjb2xvbmVxO0YnRjlGO0Y+RkBGQkZERkZGSC9GS1EsMC4yNzc3Nzc4ZW1GJy9GTkZTRjUtRiw2JVEtU2FtcGxlUG9pbnRzRidGL0YyLUkobWZlbmNlZEdGJDYkLUYjNjEtRiw2JVEkZXFzRidGL0YyLUY2Ni1RIixGJ0Y5RjsvRj9GMUZARkJGREZGRkhGSi9GTlEsMC4zMzMzMzMzZW1GJ0Y1LUYsNiVRJG5pZUYnRi9GMkZqbkY1LUYsNiVRJHBpZUYnRi9GMkZqbkY1LUYsNiVRJmluZXFzRidGL0YyRmpuRjUtRiw2JVEiUkYnRi9GMi8lK2V4ZWN1dGFibGVHRj1GOUY5LUY2Ni1RIjtGJ0Y5RjtGXW9GQEZCRkRGRkZIRkpGVC1JJ21zcGFjZUdGJDYmLyUnaGVpZ2h0R1EmMC4wZXhGJy8lJndpZHRoR0ZMLyUmZGVwdGhHRmZwLyUqbGluZWJyZWFrR1EobmV3bGluZUYnLUZicDYmRmRwRmdwRmlwL0ZccVElYXV0b0YnLUYsNiVRJG1hcEYnRi9GMi1GWTYkLUYjNistRiw2JVEoRGlzcGxheUYnRi9GMkZqbkY1RitGam5GNUZpb0ZccEY5RjlGXnBGXHBGOQ== JSFH
<Text-field style="Heading 1" layout="Heading 1"><Font size="20"> 4. References</Font></Text-field> [1] F. Boulier, C. Chen, F. Lemaire, and M. Moreno Maza. Real root isolation of regular chains. In Proc. of ASCM\342\200\23109, 2009. [2] C. W. Brown. QEPCAD B: a program for computing with semi-algebraic sets using cads. SIGSAM Bull., 37(4):97\342\200\223108, 2003. [3] C. Chen, J.H. Davenport, J. May, M. Moreno Maza, B. Xia, and R. Xiao. Triangular decomposition of semi-algebraic systems. In S.M. Watt, editor, Proceedings ISSAC 2010, pages 187\342\200\223194, 2010. [4] C. Chen, J.H. Davenport, M. Moreno Maza, B. Xia, and R. Xiao. Computing with semi-algebraic sets represented by triangular decomposition. In Proceedings ISSAC 2011, 2011. [5] C. Chen, M. Moreno Maza, B. Xia, and L. Yang. Computing cylindrical algebraic decomposition via triangular decomposition. In ISSAC\342\200\23109, pages 95\342\200\223102, 2009. [6] J.H. Davenport. The Challenges of Multivalued \342\200\234Functions\342\200\235. In S. Autexier et al., editor, Proceedings AISC/Calculemus/MKM 2010, volume 6167 of Lecture Notes in Computer Science, pages 1\342\200\22312. Springer Verlag, 2010. [7] F. Lemaire, M. Moreno Maza, and Y. Xie. The RegularChains library. In Ilias S. Kotsireas, editor, Maple Conference 2005, pages 355\342\200\223368, 2005. [8] Francois Lemaire and Asli \303\234rg\303\274pl\303\274. Modeling and Analysis of Biological Systems, 2008. www.lifl.fr/\342\210\274urguplu. [9] N. Phisanbut, R.J. Bradford, and J.H. Davenport. Geometry of Branch Cuts. Communications in Computer Algebra, 44:132\342\200\223135, 2010. [10] L. Yang and B. Xia. Real solution classifications of a class of parametric semi-algebraic systems. In Proc. of the A3L\342\200\23105, pages 281\342\200\223289, 2005. [11] T. Zhang and B. Xia. A new method for real root isolation of univariate polynomials. Mathematics in Computer Science, 1:305\342\200\223320, 2007.