+ ret += show_bound % str(bound)
+ ret += "</a></td>\n"
+
+ dump = "<h2><a name=\"details_%d_%d\">n=%d, m=%d</a></h2>\n" % (n, m, n, m)
+ dump += "<p>Best dissection known for %d into %d, with minimum fragment %s:\n" % (n, m, str(best))
+ dump += "<ul><li>Cut up %d sticks of length %d as follows:<ul>\n" % (m, n)
+ for count, pieces in dissection[0]:
+ dump += "<li>%d × (%s)\n" % (count, " + ".join(map(str, pieces)))
+ dump += "</ul><li>Reassemble as %d sticks of length %d as follows:<ul>\n" % (n, m)
+ for count, pieces in dissection[1]:
+ dump += "<li>%d × (%s)\n" % (count, " + ".join(map(str, pieces)))
+ dump += "</ul></ul>\n"
+ if best == bound:
+ dump += "<p>This dissection is confidently believed optimal because an upper bound proof (%s) matches it.\n" % bound_type
+ elif best_nature == 'e':
+ dump += "<p>This dissection is believed optimal because it was found by an exhaustive search program, although the best upper bound proof (%s) gives an upper bound of %s.\n" % (bound_type, bound)
+ tdclass = "believed"
+ show_bound = ""
+ elif best_nature == 'p':
+ dump += "<p>This dissection was found by a search program which may not be exhaustive (if the conjectured denominator bound is false) and hence may not be optimal, though we think it <em>probably</em> is. The best upper bound proof (%s) gives an upper bound of %s.\n" % (bound_type, bound)
+ else:
+ dump += "<p>This dissection was found "
+ if best_nature == 'm':
+ dump += "by hand"
+ else:
+ dump += "by a simplistic automated method (%s)" % auto_reason
+ dump += ", and is not known to be optimal. The best upper bound proof (%s) gives an upper bound of %s.\n" % (bound_type, bound)
+
+ details[(n, m)] = dump
+
+ return ret