Dealing with #4943 for ECNF as already done for ECQ.
Complications to consider include:
sometimes we do not have rank data at all, sometimes just bounds, in which case instead of having r (in one column) = (in the next) and the value, I have r? in the first, nothing in the second, and "not available" or a range e.g. $0\le r\le 2$. I am open to other suggestions.
Under torsion structure the columns are (e.g.) | E(K)_tors | \cong | Z/3Z | so for when it is trivial I kept the isomorphism sign but changed "trivial" to "0" (this is set in the python code, all else here is in the template). Other suggestions?
There are lots of combinations depending on how much data we do (or do not) have. I hope I checked them all but please look at many random curves
The knowl for "Discriminant" gives the usual definition for a field element (from the Weierstrass model) but what is displayed is the ideal this generates, so I denoted it $(\Delta)$ not just $\Delta$. Perhaps the title of that row should be "discriminant ideal"? For curves with no global minimal model (for an example see the "some interesting curves" list) there are two more lines for the minimal discriminant, and that is always an ideal by definition.
Dealing with #4943 for ECNF as already done for ECQ.
Complications to consider include: