Vieta jumping
Template:Short description In number theory, Vieta jumping, also known as root flipping, is a proof technique. It is most often used for problems in which a relation between two integers is given, along with a statement to prove about its solutions. In particular, it can be used to produce new solutions of a quadratic Diophantine equation from known ones. There exist multiple variations of Vieta jumping, all of which involve the common theme of infinite descent by finding new solutions to an equation using Vieta's formulas.
History
Vieta jumping is a classical method in the theory of quadratic Diophantine equations and binary quadratic forms. For example, it was used in the analysis of the Markov equation back in 1879 and in the 1953 paper of Mills.Script error: No such module "Footnotes".Script error: No such module "Check for unknown parameters".
In 1988, the method came to the attention to mathematical olympiad problems in the light of the first olympiad problem to use it in a solution that was proposed for the International Mathematics Olympiad and assumed to be the most difficult problem on the contest:[1][2]
- Let aScript error: No such module "Check for unknown parameters". and bScript error: No such module "Check for unknown parameters". be positive integers such that ab + 1Script error: No such module "Check for unknown parameters". divides a2 + b2Script error: No such module "Check for unknown parameters".. Show that is the square of an integer.[3]
Arthur Engel wrote the following about the problem's difficulty: Template:Quote
Among the eleven students receiving the maximum score for solving this problem were Ngô Bảo Châu, Ravi Vakil, Zvezdelina Stankova, and Nicușor Dan.[4] Emanouil Atanassov (from Bulgaria) solved the problem in a paragraph and received a special prize.[5]
Standard Vieta jumping
The concept of standard Vieta jumping is a proof by contradiction, and consists of the following four steps:[6]
- Assume toward a contradiction that some solution (a1, a2, ...Script error: No such module "Check for unknown parameters".) exists that violates the given requirements.
- Take the minimal such solution according to some definition of minimality.
- Replace some aiScript error: No such module "Check for unknown parameters". by a variable x in the formulas, and obtain an equation for which aiScript error: No such module "Check for unknown parameters". is a solution.
- Using Vieta's formulas, show that this implies the existence of a smaller solution, hence a contradiction.
- Example
Problem #6 at IMO 1988: Let aScript error: No such module "Check for unknown parameters". and bScript error: No such module "Check for unknown parameters". be positive integers such that ab + 1Script error: No such module "Check for unknown parameters". divides a2 + b2Script error: No such module "Check for unknown parameters".. Prove that Template:SfracScript error: No such module "Check for unknown parameters". is a perfect square.[7][8]
- Fix some value kScript error: No such module "Check for unknown parameters". that is a non-square positive integer. Assume there exist positive integers (a, b)Script error: No such module "Check for unknown parameters". for which k = Template:SfracScript error: No such module "Check for unknown parameters"..
- Let (A, B)Script error: No such module "Check for unknown parameters". be positive integers for which k = Template:SfracScript error: No such module "Check for unknown parameters". and such that A + BScript error: No such module "Check for unknown parameters". is minimized, and without loss of generality assume A ≥ BScript error: No such module "Check for unknown parameters"..
- Fixing BScript error: No such module "Check for unknown parameters"., replace AScript error: No such module "Check for unknown parameters". with the variable xScript error: No such module "Check for unknown parameters". to yield x2 – (kB)x + (B2 – k) = 0Script error: No such module "Check for unknown parameters".. We know that one root of this equation is x1 = AScript error: No such module "Check for unknown parameters".. By standard properties of quadratic equations, we know that the other root satisfies x2 = kB – AScript error: No such module "Check for unknown parameters". and x2 = Template:SfracScript error: No such module "Check for unknown parameters"..
- The first expression for x2Script error: No such module "Check for unknown parameters". shows that x2Script error: No such module "Check for unknown parameters". is an integer, while the second expression implies that x2 ≠ 0Script error: No such module "Check for unknown parameters". since kScript error: No such module "Check for unknown parameters". is not a perfect square. From Template:Sfrac = k > 0Script error: No such module "Check for unknown parameters". it further follows that x2B > −1Script error: No such module "Check for unknown parameters"., and hence x2Script error: No such module "Check for unknown parameters". is a positive integer. Finally, A ≥ BScript error: No such module "Check for unknown parameters". implies that x2 = Template:Sfrac < Template:Sfrac ≤ AScript error: No such module "Check for unknown parameters"., hence x2 < AScript error: No such module "Check for unknown parameters"., and thus x2 + B < A + BScript error: No such module "Check for unknown parameters"., which contradicts the minimality of A + BScript error: No such module "Check for unknown parameters"..
Constant descent Vieta jumping
The method of constant descent Vieta jumping is used when we wish to prove a statement regarding a constant kScript error: No such module "Check for unknown parameters". having something to do with the relation between aScript error: No such module "Check for unknown parameters". and bScript error: No such module "Check for unknown parameters".. Unlike standard Vieta jumping, constant descent is not a proof by contradiction, and it consists of the following four steps:[9]
- The equality case is proven so that it may be assumed that a > bScript error: No such module "Check for unknown parameters"..
- bScript error: No such module "Check for unknown parameters". and kScript error: No such module "Check for unknown parameters". are fixed and the expression relating a, bScript error: No such module "Check for unknown parameters"., and kScript error: No such module "Check for unknown parameters". is rearranged to form a quadratic with coefficients in terms of bScript error: No such module "Check for unknown parameters". and kScript error: No such module "Check for unknown parameters"., one of whose roots is aScript error: No such module "Check for unknown parameters".. The other root, x2Script error: No such module "Check for unknown parameters". is determined using Vieta's formulas.
- For all (a, b)Script error: No such module "Check for unknown parameters". above a certain base case, show that 0 < x2 < b < aScript error: No such module "Check for unknown parameters". and that x2Script error: No such module "Check for unknown parameters". is an integer. Thus, while maintaining the same kScript error: No such module "Check for unknown parameters"., we may replace (a, b)Script error: No such module "Check for unknown parameters". with (b, x2)Script error: No such module "Check for unknown parameters". and repeat this process until we arrive at the base case.
- Prove the statement for the base case, and as kScript error: No such module "Check for unknown parameters". has remained constant through this process, this is sufficient to prove the statement for all ordered pairs.
- Example
Let aScript error: No such module "Check for unknown parameters". and bScript error: No such module "Check for unknown parameters". be positive integers such that abScript error: No such module "Check for unknown parameters". divides a2 + b2 + 1Script error: No such module "Check for unknown parameters".. Prove that 3ab = a2 + b2 + 1Script error: No such module "Check for unknown parameters"..[10]
- If a = b, a2Script error: No such module "Check for unknown parameters". dividing 2a2 + 1Script error: No such module "Check for unknown parameters". implies that a2Script error: No such module "Check for unknown parameters". divides 1, and hence the positive integers a = b = 1Script error: No such module "Check for unknown parameters"., and 3(1)(1) = 12 + 12 + 1Script error: No such module "Check for unknown parameters".. So, without loss of generality, assume that a > bScript error: No such module "Check for unknown parameters"..
- For any (a, b)Script error: No such module "Check for unknown parameters". satisfying the given condition, let k = Template:SfracScript error: No such module "Check for unknown parameters". and rearrange and substitute to get x2 − (kb)Template:Hair spacex + (b2 + 1) = 0Script error: No such module "Check for unknown parameters".. One root to this quadratic is aScript error: No such module "Check for unknown parameters"., so by Vieta's formulas the other root may be written as follows: x2 = kb − a = Template:SfracScript error: No such module "Check for unknown parameters"..
- The first equation shows that x2Script error: No such module "Check for unknown parameters". is an integer and the second that it is positive. Because a > bScript error: No such module "Check for unknown parameters". and they are both integers, a ≥ b + 1Script error: No such module "Check for unknown parameters"., and hence ab ≥ b2 + bScript error: No such module "Check for unknown parameters".; As long as b > 1Script error: No such module "Check for unknown parameters"., we always have ab > b2 + 1Script error: No such module "Check for unknown parameters"., and therefore x2 = Template:Sfrac < bScript error: No such module "Check for unknown parameters".. Thus, while maintaining the same kScript error: No such module "Check for unknown parameters"., we may replace (a, b)Script error: No such module "Check for unknown parameters". with (b, x2)Script error: No such module "Check for unknown parameters". and repeat this process until we arrive at the base case.
- The base case we arrive at is the case where b = 1Script error: No such module "Check for unknown parameters".. For (a, 1)Script error: No such module "Check for unknown parameters". to satisfy the given condition, aScript error: No such module "Check for unknown parameters". must divide a2 + 2Script error: No such module "Check for unknown parameters"., which implies that aScript error: No such module "Check for unknown parameters". divides 2, making aScript error: No such module "Check for unknown parameters". either 1 or 2. The first case is eliminated because a = bScript error: No such module "Check for unknown parameters".. In the second case, k = Template:Sfrac = Template:Sfrac = 3Script error: No such module "Check for unknown parameters".. As kScript error: No such module "Check for unknown parameters". has remained constant throughout this process of Vieta jumping, this is sufficient to show that for any (a, b)Script error: No such module "Check for unknown parameters". satisfying the given condition, kScript error: No such module "Check for unknown parameters". will always equal 3.
Geometric interpretation
Vieta jumping can be described in terms of lattice points on hyperbolas in the first quadrant.[1] The same process of finding smaller roots is used instead to find lower lattice points on a hyperbola while remaining in the first quadrant. The procedure is as follows:
- From the given condition we obtain the equation of a family of hyperbolas that are unchanged by switching xScript error: No such module "Check for unknown parameters". and yScript error: No such module "Check for unknown parameters". so that they are symmetric about the line y = xScript error: No such module "Check for unknown parameters"..
- Prove the desired statement for the intersections of the hyperbolas and the line y = xScript error: No such module "Check for unknown parameters"..
- Assume there is some lattice point (x, y)Script error: No such module "Check for unknown parameters". on some hyperbola and without loss of generality x < yScript error: No such module "Check for unknown parameters".. Then by Vieta's formulas, there is a corresponding lattice point with the same xScript error: No such module "Check for unknown parameters".-coordinate on the other branch of the hyperbola, and by reflection through y = xScript error: No such module "Check for unknown parameters". a new point on the original branch of the hyperbola is obtained.
- It is shown that this process produces lower points on the same branch and can be repeated until some condition (such as x = 0Script error: No such module "Check for unknown parameters".) is achieved. Then by substitution of this condition into the equation of the hyperbola, the desired conclusion will be proven.
- Example
This method can be applied to problem #6 at IMO 1988: Let aScript error: No such module "Check for unknown parameters". and bScript error: No such module "Check for unknown parameters". be positive integers such that ab + 1Script error: No such module "Check for unknown parameters". divides a2 + b2Script error: No such module "Check for unknown parameters".. Prove that Template:SfracScript error: No such module "Check for unknown parameters". is a perfect square.
- Let Template:Sfrac = qScript error: No such module "Check for unknown parameters". and fix the value of qScript error: No such module "Check for unknown parameters".. If q = 1Script error: No such module "Check for unknown parameters"., qScript error: No such module "Check for unknown parameters". is a perfect square as desired. If q = 2Script error: No such module "Check for unknown parameters"., then (a-b)2 = 2Script error: No such module "Check for unknown parameters". and there is no integral solution a, bScript error: No such module "Check for unknown parameters".. When q > 2Script error: No such module "Check for unknown parameters"., the equation x2 + y2 − qxy − q = 0Script error: No such module "Check for unknown parameters". defines a hyperbola HScript error: No such module "Check for unknown parameters". and (a,b)Script error: No such module "Check for unknown parameters". represents an integral lattice point on HScript error: No such module "Check for unknown parameters"..
- If (x,x)Script error: No such module "Check for unknown parameters". is an integral lattice point on HScript error: No such module "Check for unknown parameters". with x > 0Script error: No such module "Check for unknown parameters"., then (since qScript error: No such module "Check for unknown parameters". is integral) one can see that x = 1Script error: No such module "Check for unknown parameters".. This proposition's statement is then true for the point (x,x)Script error: No such module "Check for unknown parameters"..
- Now let P = (x, y)Script error: No such module "Check for unknown parameters". be a lattice point on a branch HScript error: No such module "Check for unknown parameters". with x, y > 0Script error: No such module "Check for unknown parameters". and x ≠ y Script error: No such module "Check for unknown parameters". (as the previous remark covers the case x = yScript error: No such module "Check for unknown parameters".). By symmetry, we can assume that x < yScript error: No such module "Check for unknown parameters". and that PScript error: No such module "Check for unknown parameters". is on the higher branch of HScript error: No such module "Check for unknown parameters".. By applying Vieta's Formulas, (x, qx − y)Script error: No such module "Check for unknown parameters". is a lattice point on the lower branch of HScript error: No such module "Check for unknown parameters".. Let yTemplate:Prime = qx − yScript error: No such module "Check for unknown parameters".. From the equation for HScript error: No such module "Check for unknown parameters"., one sees that 1 + x yTemplate:Prime > 0Script error: No such module "Check for unknown parameters".. Since x > 0Script error: No such module "Check for unknown parameters"., it follows that yTemplate:Prime ≥ 0Script error: No such module "Check for unknown parameters".. Hence the point (x, yTemplate:Prime)Script error: No such module "Check for unknown parameters". is in the first quadrant. By reflection, the point (yTemplate:Prime, x)Script error: No such module "Check for unknown parameters". is also a point in the first quadrant on HScript error: No such module "Check for unknown parameters".. Moreover from Vieta's formulas, yyTemplate:Prime = x2 - qScript error: No such module "Check for unknown parameters"., and yTemplate:Prime = Template:SfracScript error: No such module "Check for unknown parameters".. Combining this equation with x < yScript error: No such module "Check for unknown parameters"., one can show that yTemplate:Prime < xScript error: No such module "Check for unknown parameters".. The new constructed point Q = (yTemplate:Prime, x)Script error: No such module "Check for unknown parameters". is then in the first quadrant, on the higher branch of HScript error: No such module "Check for unknown parameters"., and with smaller xScript error: No such module "Check for unknown parameters".,yScript error: No such module "Check for unknown parameters".-coordinates than the point PScript error: No such module "Check for unknown parameters". we started with.
- The process in the previous step can be repeated whenever the point QScript error: No such module "Check for unknown parameters". has a positive xScript error: No such module "Check for unknown parameters".-coordinate. However, since the xScript error: No such module "Check for unknown parameters".-coordinates of these points will form a decreasing sequence of non-negative integers, the process can only be repeated finitely many times before it produces a point Q = (0, y)Script error: No such module "Check for unknown parameters". on the upper branch of HScript error: No such module "Check for unknown parameters".; by substitution, q = y2Script error: No such module "Check for unknown parameters". is a square as required.
See also
Notes
<templatestyles src="Reflist/styles.css" />
- ↑ a b Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".Template:Cbignore
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "Citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
Script error: No such module "Check for unknown parameters".
External links
- Vieta Root Jumping at Brilliant.org
- Script error: No such module "Citation/CS1".