Rational points - From an old Kvant issue We are given $4$ lattice points $A,B,C,D$ which forms a convex quadrilateral and is not a parallelogram. We start with those $4$ points. We can obtain new points by taking the intersection of two lines, each of which passes through $2$ of our given points. Can we obtain all rational points using this method?
 A: Suppose you have a convex polygon $AOBC$ with rational coordinates, and with no two parallel sides.
Then you can construct the whole rational line $(AB)$ :
First, construct $A',B',C'$ the intersections of $(OA)$ with $(BC)$, of $(OB)$ with $(AC)$, and of $(OC)$ with $(AB)$.

Consider a point $M$ on $(AB)$. Construct the intersection $Q$ of $(OB)$ with $(A'M)$, then the intersection $M'$ of $(AB)$ with $(QC)$.
The map $f : M \mapsto M'$ is an automorphism of the projective line $L = (AB) \cup \{\infty\}$, it has only one fixed point at $B$, and sends $A$ to $C'$.
Look at the similar transformation obtained by switching $A$s with $B$s, you get another automorphism $g$ of $L$ with a unique fixpoint $A$ and that sends $B$ to $C'$.
Now there is a unique rational isomorphism from $L$ to $\Bbb P^1(\Bbb R)$ sending $B,C',A$ to $0,1,\infty$. The transcriptions of those two automorphisms from before are then given by $f : t \mapsto \frac t{t+1}$ and $g : t \mapsto t+1$.
(incidentally, the fact that $f$ and $g$ are determined by having a double fixpoint, and by their action on $A,B$, shows that you can switch $O$ with $C$ without changing $C'$ hence without changing $f$ and $g$ themselves)
The beauty of this now, is that by applying those two transformations in the right way to $1$, you can obtain every rational $t \in (0;\infty)$... by using the euclidean algorithm :
Suppose $a/b$ is a positive rational. If $a<b$ then it is in the image of $f$, and it is enough to construct $f^{-1}(a/b) = a/(b-a)$. If $a>b$ then it is in the image of $g$ and it is enough to construct $g^{-1}(a/b) = (a-b)/a$. If $a/b = 1$ we are done because we can construct $1$ from itself by applying nothing.
This process terminates by induction on $a+b$. In fact every rational is obtained from $1$ in a unique way from $f$ and $g$.

Going back to $(AB)$, we can do all of this unless we need to construct the point at infinity of the line (that would be unlucky). But since $C'$ is inside $[AB]$, the positive rationals correspond to the interior of the segment, and not the exterior.
This proves that we can construct every point in the segment $[AB]$ that has rational coordinates. To get the rest of the line $(AB)$ you can simply apply the previous automorphisms of $L$ backwards from $[AB]$. In fact they reach the point at infinity in a finite number of steps from $[AB]$, so that's not too long.
Next by symmetry, you can also construct the line $(OC)$.
And so for every rational line not parallel to $(AB)$ or $(OC)$, you can construct its intersections with them (because they're rational points of those lines).
Finally for any rational point $M$ in the plane, you can look at $2$ lines through $M$ not parallel to $(AB)$ or $(OC)$, construct the $4$ intersection points, then construct $M$ as an intersection from those $4$ points.
The only detail left is to show that if you start with a quadrilateral that has two parallel sides, you can construct another convex quadrlateral with no parallel sides.
