**Update:** With the notation from below, an example where an edge has slope $m$ requires $m\in\mathbb Q(s)$ where $s=\sin(2\pi/5)$. Note that $s$ has degree $4$ over $\mathbb Q$. If we write $m=m_0+m_1s+m_2s^2+m_3s^3$ with rational $m_i$, then a further necessary condition is \begin{equation} 64m_0m_1^2 - 64m_0^2m_2 - 80m_0m_2^2 - 20m_2^3 + 160m_0m_1m_3 + 40m_1m_2m_3 + 80m_0m_3^2 + 25m_2m_3^2 - 64m_2=0. \end{equation} This condition is essentially sufficient for the following: There are $5$ distinct rational points, one on each *line* through an edge. This cubic has many rational solutions. (I guess it is rationally parametrized. Also, this cubic has an automorphism of order $5$, because the condition applies to each edge.) Still, none of them so far forced all these rational points *inside* each edge. This condition amounts to high degree polynomial inequalities. <hr> This is an attempt giving some partial results. Set $s=\sin(2\pi/5)$ and $c=2s^2 - 3/2=\cos(2\pi/5)$. We show that if there is a positive answer, then the slopes of the edges are contained in the field $\mathbb Q(s)$, but none of the slopes is rational. Let $u_0,\ldots,u_4$ be five putative rational points on the five sides of the regular pentagon. We allow that some points coincide. Note however that $u_i=u_j$ can only happen if $i-j\in\{-1,0,1\}$ (indices taken modulo $5$). The rational group $\text{SO}(2,\mathbb Q)$ of rotations is dense in $\text{SO}(2,\mathbb R)$ (in view of the rational parametrization $x=2t/(1+t^2), y=(1-t^2)/(1+t^2)$ of the unit circle). In particular, we may and do assume the following: - None of the slopes is vertical. - If $(x_i,y_i)=u_i\ne u_j=(x_j,y_j)$, then $x_i\ne x_j$ and $y_i\ne y_j$. - $x_0=y_0=0$, $x_1=1$. Let $m$ be the slope of the edge through $u_0$. By repeated rotation of the vector $(1,m)$ by $2\pi/5$, we get the slopes through the $u_i$'s. By intersecting the lines through these points, we get the vertices of the pentagon. Let $p_i$ be the intersection of the lines through $u_i$ and $u_{i+1}$. The condition which has to hold is that the vector $p_{i+2}-p_{i+1}$ is $p_{i+1}-p_i$ rotated by $2\pi/5$. For $i=3$ this yields the condition \begin{align} q_0+q_1m &= 0\text{ where}\\ q_0 &= (-4x_3 + 4x_4)s^3 + (2y_1 + 2y_3)s^2 + (3x_3 - 2x_4 - 1)s - 3/2y_1 - y_3 + 1/2y_4\\ q_1 &= (-4y_3 + 4y_4)s^3 + (-2x_3 - 2)s^2 + (-y_1 + 3y_3 - 2y_4)s + x_3 - 1/2x_4 + 3/2 \end{align} We use that $s$ has degree $4$ over $\mathbb Q$, and $s^4 - 5/4s^2 + 5/16=0$. Suppose that $m$ is not in the field generated by $s$. Then $q_1=q_0=0$. The linear independence of $1,s,s^2,s^3$ yields $8$ equations in the $x_i$'s and $y_i$'s. Let $q_i[j]$ be the coefficient in $q_i$ of $s^j$. We get the contradiction \begin{equation} 0 = q_0[3] + 8q_1[0] + 2q_1[2] = (-4x_3 + 4x_4)+8(x_3 - 1/2x_4 + 3/2)+2(-2x_3 - 2)=8. \end{equation} Similarly, we show that $m$ is not rational. Suppose that $m$ is rational. Then $q[j]:=q_0[j]+mq_1[j]$ vanishes for $j=0,1,2,3$. One computes that \begin{equation} 8mq[0]-4q[1]+4mq[2]-3q[3]=4(1-x_4)(1+m^2), \end{equation} so $4(1-x_4)(1+m^2)=0$. Of course $1+m^2\ne0$, hence $x_4=1=x_1$, which contradicts our assumption $u_4\ne u_1$ (and different $x$-coordinates for different $u_i$'s). The SageMath code below does the actual computation. In order to continue, one can use $q$ to eliminate $m$ in the other equations (collected in the list `L` in the program). Using Groebner bases one gets certain conditions on the $x_i$'s and $y_i$'s, but I wasn't able to get a contradiction, nor a positive example. The computations just became too heavy, so a better idea is needed. ``` vars = [f'x_{i}' for i in range(2, 5)] vars += [f'y_{i}' for i in range(1, 5)] vars += ['m', 's'] R = PolynomialRing(QQ, vars) R.inject_variables() f = s^4 - 5/4*s^2 + 5/16 c = 2*s^2 - 3/2 def u(i): i = i%5 if i == 0: return 0, 0 if i == 1: return 1, y_1 return R.gen(i-2), R.gen(i+2) def rot(u): """Rotate vector u by 2*pi/5""" x, y = u return (x*c - y*s)%f, (x*s + y*c)%f def diff(u, v): return u[0]-v[0], u[1]-v[1] slope = (1, m) p = [] for k in range(7): ux, uy = u(k) sux, suy = slope slope = rot(slope) vx, vy = u(k+1) svx, svy = slope x = suy*svx*ux - sux*svx*uy - sux*svy*vx + sux*svx*vy y = suy*svy*ux - sux*svy*uy - suy*svy*vx + suy*svx*vy p.append((x%f, y%f)) deltas = [diff(p[k+1], p[k]) for k in range(6)] L = [diff(deltas[k+1], rot(deltas[k]))[0] for k in range(4)] q = [z for z in L if z.degree(m) == 1][0] lq = [R(z) for z in q.polynomial(m)] def L2N(L): #Get the coefficients of the polynomial in s N = [] for z in L: N += [R(_) for _ in z.polynomial(s).coefficients()] return N print('Checking that m in Q(s):') N = L2N(lq) print(1 in ideal(N), R(1).lift(N)) print('Checking that m is not rational:') N = L2N([q]) w = (1-x_4)*(m^2+1) print(w in ideal(N), w.lift(N)) ```