A lattice path model with an infinite number of critical points.
Requirements: None
# Define the characteristic polynomial and denominator H for the lattice path model
var('x,y,z,t')
ST = [(0,i,j) for i in [-1,1] for j in [-1,1]]
ST += [(i,0,j) for i in [-1,1] for j in [-1,1]]
ST += [(i,j,0) for i in [-1,1] for j in [-1,1]]
S = add(x^i*y^j*z^k for (i,j,k) in ST)
H = 1 - t*x*y*z*S
H
# Solve the smooth critical point equations for the main diagonal direction
CPeqs = [H] + [diff(H,x)*x - diff(H,v)*v for v in [y,z,t]]
CPs = solve(CPeqs,[x,y,z,t])
CPs
# We get the two isolated minimal critical points
show(list(filter(lambda L: abs(t.subs(L))== 1/12, CPs)))
# And the curves of non-minimal critical points
# (note that some points are represented multiple times)
show(list(filter(lambda L: abs(t.subs(L)) != 1/12, CPs)))