# Apery denominator
H := 1-w*(1+x)*(1+y)*(1+z)*(1+y+z+y*z+x*y*z);
LV9JLFR5cGVzZXR0aW5nRzYkJSpwcm90ZWN0ZWRHSShfc3lzbGliRzYiSSxtcHJpbnRzbGFzaEdGKDYkNyM+SSJIR0YoLCYiIiJGLyosSSJ3R0YoRi8sJkYvRi9JInhHRihGL0YvLCZGL0YvSSJ5R0YoRi9GLywmRi9GL0kiekdGKEYvRi8sLCooRjNGL0Y1Ri9GN0YvRi8qJkY1Ri9GN0YvRi9GNUYvRjdGL0YvRi9GLyEiIjcjRi4=
CP := [H,diff(H,w)*w-2*lambda,diff(H,x)*x-lambda,diff(H,y)*y-lambda, diff(H,z)*z-lambda, subs(x=x*t,y=y*t,w=w*t,z=z*t,H)];
LV9JLFR5cGVzZXR0aW5nRzYkJSpwcm90ZWN0ZWRHSShfc3lzbGliRzYiSSxtcHJpbnRzbGFzaEdGKDYkNyM+SSNDUEdGKDcoLCYiIiJGMCosSSJ3R0YoRjAsJkYwRjBJInhHRihGMEYwLCZGMEYwSSJ5R0YoRjBGMCwmRjBGMEkiekdGKEYwRjAsLCooRjRGMEY2RjBGOEYwRjAqJkY2RjBGOEYwRjBGNkYwRjhGMEYwRjBGMCEiIiwmRjFGPEknbGFtYmRhR0YoISIjLCYqJiwmKipGMkYwRjVGMEY3RjBGOUYwRjwqLkYyRjBGM0YwRjVGMEY3RjBGNkYwRjhGMEY8RjBGNEYwRjBGPkY8LCYqJiwmKipGMkYwRjNGMEY3RjBGOUYwRjwqLEYyRjBGM0YwRjVGMEY3RjAsKComRjRGMEY4RjBGMEY4RjBGMEYwRjBGPEYwRjZGMEYwRj5GPCwmKiYsJioqRjJGMEYzRjBGNUYwRjlGMEY8KixGMkYwRjNGMEY1RjBGN0YwLCgqJkY0RjBGNkYwRjBGNkYwRjBGMEYwRjxGMEY4RjBGMEY+RjwsJkYwRjAqLkYyRjBJInRHRihGMCwmKiZGVUYwRjRGMEYwRjBGMEYwLCYqJkZVRjBGNkYwRjBGMEYwRjAsJiomRlVGMEY4RjBGMEYwRjBGMCwsKipGVSIiJEY0RjBGNkYwRjhGMEYwKihGVSIiI0Y2RjBGOEYwRjBGWUYwRmVuRjBGMEYwRjBGPDcjRi4=
# Compute a lex Grobner basis (very big!)
# Notice that the zeroes will be a union of two triangular systems
# one of which corresponds to t=1
GB := factor(Groebner[Basis](CP,plex(lambda,w,x,y,z,t)));
LV9JLFR5cGVzZXR0aW5nRzYkJSpwcm90ZWN0ZWRHSShfc3lzbGliRzYiSSxtcHJpbnRzbGFzaEdGKDYkNyM+SSNHQkdGKDcpKiYsJkkidEdGKCIiIiEiIkYyRjIsSCokRjEiIz0iJEMkKiRGMSIjPCIlRzwqJEYxIiM7IiUwSiokRjEiIzoiJSpbKiokRjEiIzkiJWglKSokRjEiIzghJkZvJyokRjEiIzchJkhTKSokRjEiIzYhJyczPiUqJEYxIiM1IidVNG8qJEYxIiIqIShzJ2U6KiRGMSIiKSIoZidSUCokRjEiIigiKDdFSSQqJEYxIiInIShpODMmKiRGMSIiJiEoQyllUyokRjEiIiUiJ18qNCQqJEYxIiIkIihvJipmIiokRjEiIiMhKC9OMiJGMSIoRygqKUgiJk8yI0YyRjIsJComRjBGMixIRjgiVV9TKno+Pio+JXkwY10mPlVSYD1DIXpJTy9XI2Y7RjsiVjM1J2ZPJT0+Q2heISk+Ozl6d01OP20iNCFmZCR5N0Y+IlYqb00nWycqbzY7K3lQJnkrT1kkKXprdztVKVsiR0lURkEiVygqKnBFJDNIWCNbWEokZnBtYylcYmFXa21LUTMoWzZGRCJXYFYxKj0+d21IX3pLVjRVd2BaYGwpSEZuW3VLQkZHIVZGVkF2dk4/JXAyJ1xTJW9FRVFjNCRSc2xbUiFIREZKIVc0bVxyal0neTgiPmkkSDQnPkN3dUlcRytxbl9FKSlGTSFYTXdwRCE+RFg9Oks5aWEhW0lkTDp6J2VoX2hfbU9GUCFYUUBZbShwQHN2JVEhPSxkUGo4UktVJ1snPWhWSS1MRlMhWCkpR1siZiFwSmgkUjQ7aUxUJ0csZShbZmgsOjFqTHRGViJXZikqNC9cYi1iX0h3bz1iQiMqZXJRPGAyZjQ/PCopRlkiWXNNIUchNEA/J3BvX0JHJnA8J1JcQzYiUUFNdT0pKnBURmZuIlk5NyQqKlI8NiJcZSVISGJOTzpZYFkoKiozYk1rInplOCVGaW4hWDtBbihHLF0jKlJsQDUiPiopNCxHZyJcIUdZJzNVQ0NyRlxvIVlTMU9gP0spekt5KEcrWmVgaldTaG0ocCFIXXc9Jj0kRl9vIVk/UjlkdkwhKjNiKT5JWSQpb1o0YCtscWJyRVE4NV0jRjEhWXNlXjdjLSc+RzZleSR5O047TVM4N2AiKnpDZCNmSSNJInpHRighWCEzIylcKEg2R1xbRUliRC5uWUBfPS8hKTNgISpbc2IoIVhnXHVUdUh3byM+aGtWOGg/VCtcYyVRayZSLzJiYUYyRjJGMywqKiRGaHBGXW9GWiokRmhwRmBvISIoRmhwISImRmBvRjIsJkkieUdGKEYyRmhwRjMsKkZdcUZaSSJ4R0YoRmpuRmhwISIkRmRxRjIsKkZdcSIlI1slSSJ3R0YoIiNzRmhwISViJCkiJTlARjIsJkknbGFtYmRhR0YoRmBvRjJGMjcjRi4=
# The solutions with t-1=0 satisfy
GB := factor(Groebner[Basis]([op(CP),t-1],plex(lambda,w,x,y,z,t)));
LV9JLFR5cGVzZXR0aW5nRzYkJSpwcm90ZWN0ZWRHSShfc3lzbGliRzYiSSxtcHJpbnRzbGFzaEdGKDYkNyM+SSNHQkdGKDcoLCZJInRHRigiIiIhIiJGMSwqKiRJInpHRigiIiQiIicqJEY1IiIjISIoRjUhIiZGOUYxLCZJInlHRihGMUY1RjIsKkY4RjdJInhHRigiIiVGNSEiJEZBRjEsKkY4IiUjWyVJIndHRigiI3NGNSElYiQpIiU5QEYxLCZJJ2xhbWJkYUdGKEY5RjFGMTcjRi4=
# The solutions with R(t)=0 satisfy the following
# we get a triangular system
R := 324*t^18+1728*t^17+3105*t^16+9489*t^15+8461*t^14-66827*t^13-84029*t^12-419086*t^11+680942*t^10-1558672*t^9+3739659*t^8+3302612*t^7-5081362*t^6-4058824*t^5+309952*t^4+1599568*t^3-1073504*t^2+2989728*t+20736:
GB := factor(factor(Groebner[Basis]([op(CP),R],plex(lambda,w,x,y,z,t))));
map(indets,GB);
LV9JLFR5cGVzZXR0aW5nRzYkJSpwcm90ZWN0ZWRHSShfc3lzbGliRzYiSSxtcHJpbnRzbGFzaEdGKDYkNyM+SSNHQkdGKDcoLEgqJEkidEdGKCIjPSIkQyQqJEYxIiM8IiVHPCokRjEiIzsiJTBKKiRGMSIjOiIlKlsqKiRGMSIjOSIlaCUpKiRGMSIjOCEmRm8nKiRGMSIjNyEmSFMpKiRGMSIjNiEnJzM+JSokRjEiIzUiJ1U0byokRjEiIiohKHMnZToqJEYxIiIpIihmJ1JQKiRGMSIiKCIoN0VJJCokRjEiIichKGk4MyYqJEYxIiImIShDKWVTKiRGMSIiJSInXyo0JCokRjEiIiQiKG8mKmYiKiRGMSIiIyEoL04yIkYxIihHKCopSCImTzIjIiIiLEhGNCFVX1Mqej4+Kj4leTBjXSY+VVJgPUMheklPL1cjZjtGNyFWMzUnZk8lPT5DaF4hKT47OXp3TU4/bSI0IWZkJHk3RjohVipvTSdbJypvNjsreVAmeStPWSQpemt3O1UpWyJHSVRGPSFXKCoqcEUkM0hYI1tYSiRmcG1jKVxiYVdrbUtRMyhbNkZAIVdgVjEqPT53bUhfektWNFV3YFpgbClIRm5bdUtCRkMiVkZWQXZ2Tj8lcDInXFMlb0VFUWM0JFJzbFtSIUhERkYiVzRtXHJqXSd5OCI+aSRINCc+Q3d1SVxHK3FuX0UpKUZJIlhNd3BEIT5EWD06SzlpYSFbSWRMOnonZWhfaF9tT0ZMIlhRQFltKHBAc3YlUSE9LGRQajhSS1UnWyc9aFZJLUxGTyJYKSlHWyJmIXBKaCRSNDtpTFQnRyxlKFtmaCw6MWpMdEZSIVdmKSo0L1xiLWJfSHdvPWJCIyplclE8YDJmND88KilGVSFZc00hRyE0QD8ncG9fQkcmcDwnUlxDNiJRQU11PSkqcFRGWCFZOTckKipSPDYiXGUlSEhiTk86WWBZKCoqM2JNayJ6ZTglRmVuIlg7QW4oRyxdIypSbEA1Ij4qKTQsR2ciXCFHWSczVUNDckZobiJZUzFPYD9LKXpLeShHK1plYGpXU2htKHAhSF13PSY9JEZbbyJZP1I5ZHZMISozYik+SVkkKW9aNGArbHFickVRODVdI0YxIllzZV43Yy0nPkc2ZXkkeTtOO01TODdgIip6Q2QjZkkjSSJ6R0YoIlghMyMpXChINkdcW0VJYkQubllAXz0vISkzYCEqW3NiKCJYZ1x1VHVId28jPmhrVjhoP1QrXGMlUWsmUi8yYmFGYG8sSEY0RmJvRjdGY29GOkZkb0Y9RmVvRkBGZm9GQ0Znb0ZGRmhvRklGaW9GTEZqb0ZPRltwRlJGXHBGVUZdcEZYRl5wRmVuRl9wRmhuRmBwRltvRmFwRjFGYnBJInlHRihGZHBGZXBGYG8sSEY0IlRfJnk0VEZHKD5nbyFSQlwoKSpIbEZ2akVDWyM9dkY3IlVPcS1NWydlZiFwTid6LV4hSD1wMlE3LWcmb0R6JkY6IlZZW3pLTXknPWBHTHUoUlxXOGktRnQ7JEcsV3I9Rj0iVjhfIVI4KEc1ZU9nYGhOTnVSOSM+dlYoKWUhKVIvX0ZAIlcsal46VCRcM04oW1srMGVRa2hVOCwiKSlmakdwMCJGQyFWRDIhMzlaXzQoSDMhM3JNXyEqSCNlW1knXCRIJVFcNkZGIVc8ZUVYLmtiZywyNC0lPi4rUSYqZlZDNCxlUikqKlJGSSFYJmVvKSpRRV0oKTRiIW9VdXknb0RpUiY+VT8hKSkpWzRtIkZMIVhXWEpQITNMKkdDOFklKkhbQTs/PnA4IXpBP2FxJ1wiRk8hWCFRcXZpRHh1aCVHbChSeiVwajteKlFHb2gnKWZ6QExGUiJXLUl0Sid5azthRkJAInAtKT0uTy8hMyMpZjs0LF1TRlUiWSRwXjtFankrPHFELmN1XW9KJFJVMXliUVBAOiopPUZYIllfdFxlai5oemhgVFNuSmNLPEAtOyJmW2JWMFAoPUZlbiFYZy5lPSY0SCg+Tis2dE90SikpXHEkSGtIMEVdbUZLRmhuIVlrJXkhb3B0JWVebXlAMT87ZC5GL29ZI0dYIjRZSVciRltvIVkhW0Esa15ldThGVHkiKm83Qzcpb3o6eiEqNCgzWko4IkYxIVlzTTdMI0hOZG5JVmUlPWEraVVLKTNHJHo+dFpsVzVJInhHRigiWCslPWU5JTRTdXQpPSVIcl9BQV5WOnFtITRAdXEoSCciWEshR3pRZkwvMmdHI1xwcUNXXHgqcCUpcCZIMycqZTokRmBvLEhGNCFYazp5dig0K29hVjtwNF1ANFdyZiZwJTRSRmVSMmlGNyFZIz5fJilcPy1JdjxfQE4iM0ErQzhGOHNFeU5DVCN5JUY6IVoyMXUtRScpXCUqKUdOI0hwKnpwcEovMV8vKTQhM0A+WDpGPSFaciNlW01PKT0nby0mM0NmclxWS11hKT0hKj12c11mKEglRkAhWlo2PD82ak9Gc3VPNXJfbyxeS3krLlVCV0xLc3MpRkMiWWwoemAwKlFCaFpHamElKVFhOSpmKWUjZSEqPV4iZjReJSpGRiJlbmY7JzQ3Nm0qenc/aWN2KFwmSClcXFMyJjQpekZLaj5JJEZJImZuXUs2LUllMCE0SUZ0WTx1ckZCaj5JaSNHPHFhLj1QIkZMImZuUWN0R1lhXSNSU20scCh5N2debGRfLnpUZ0NcM2BCIkZPImZuPyo9XVUpUWYoKSkzY0oiPk9jMlYhKmY4T1xpXHY6S1J1I0ZSIWVuSDtkcVozemcpSCcqRyN6TnMibzJZMGQnSCRwbmlxSkwkRlUhZ25jNlZvUjd6YSpRVlBMeFk6eFUlZSUzI2ZmbEsxcjdnOkZYIWduYXZXZk1ebVhsKipbOT1zKSpHJ0gyWGAmejxANF1zT1o6RmVuImZuU1sjPTw+eiNHQT5hLTkyejFsd0ReelRsP1g2d2BtI0ZobiJnbm8uLGE3IW9Ec0ovazwtTF4qKmUoUigzXWsrKHBONG4iPiJGW28iZm5nQElpSDpsTzZHV3d2cjR5ITNDIj5BWmBmJSlvPm9OKkYxImZuL05WJj5aXi9cQSVHMiYpNGhSOV54Vj8+RU9iNWpzaSlJIndHRigiWitbIyopXHlubyY0KmUiPUwmPi0hKUc4NkQhRyY9ViRcVmAlImZuO0dtZT1LLj4uMy4lb3J6RjohNDpMXGtlSS9zIipcWSdGYG8sJkknbGFtYmRhR0YoRlxvRmBvRmBvNyNGLg==
Nyg8I0kidEc2IjwkRiRJInpHRiU8JEYkSSJ5R0YlPCRGJEkieEdGJTwkRiRJIndHRiU8I0knbGFtYmRhR0Yl
# Determine degree and number of digits in max coefficient of each element of GB
map(degree,GB);
map(a->ceil(log[10](norm(a,infinity))),GB);
NygiIz0iIzxGJEYkRiQiIiI=
NygiIigiI2NGJEYkIiNnIiIi
# Introduce the linear form u=t+w
# This is separating as the resulting GB has the form P, R_j(u) - z_j
# We hide the output as it is very large!
GB := Groebner[Basis]([op(CP),u-t-w],plex(lambda,x,y,z,w,t,u)):
GB[1];
LE4qJEkidUc2IiIjQCI2KUclW0Q/P1dXIT4+KiRGJCIjPyI5I3pgTillaWUkNCs1IT4qJEYkIiM+IjtzOS8jKlIlPiMqKUdcTyQ0KSokRiQiIz0iPkNNOXJPLl0oRy5rXydHIz4qJEYkIiM8IkBbJ1IieTppLS5hVmJgX0J3IyokRiQiIzsiQiFvNjIhSCkzeC45RDVqJSlIPEMqJEYkIiM6IkRnQChvQihbKUdqTj5PUSJlbiU9NyokRiQiIzkiRTdFRyxKKUdyMGZUKVttTGRwIipIKiRGJCIjOCJGM3dtJVFbK0oxQ2xfdlxFO2R4PyokRiQiIzciRiZRKlxFa2B0aSteJFIvMCJRSUNTKCokRiQiIzYiR3BRJEcnNCVSM15Nb2YuMz5OPTkyIyokRiQiIzUiRylbYnJEYiFIMylSJ1ItT1A/TFpiWCokRiQiIioiR0ZKRElYKkd3RWVtc2cxOVMjKnpcJSokRiQiIikhRzMyUWQsdG0/WyV5YyYzcEFqalJTKiRGJCIiKCFIWilHPChbXitRR1taRUR0XGpTQjIkKiRGJCIiJyFIOT5sSGQ4JXBjUihmLSF6QjtiaGZAKiRGJCIiJiJITER4RyE9bkkxWCpbUGRkK1Mjei1DKiRGJCIiJSJIIlw5dDZ4YyE+KT1wPlByeFBWZigqSCokRiQiIiQiR11eZ2wzWD8/XCslM3Jvcyc9V1FvKiRGJCIiIyFHZWFlJVtaQVJmYWRbUXZPYGhZMCNGJCFHbyhbLls/YnBVcXJETlR4VVdPciIhSDtRbDo7JipbIltCeEI0OVE8MV87NyIiIg==
# Determine degree and number of digits in max coefficient of each element of GB
map(degree,GB);
map(a->ceil(log[10](norm(a,infinity))),GB);
NykiI0AiIz9GJEYkRiRGJCIiIg==
NykiI1IiJDslRiQiJEElRiVGJSIiIg==
P := factor(GB[1]);
LV9JLFR5cGVzZXR0aW5nRzYkJSpwcm90ZWN0ZWRHSShfc3lzbGliRzYiSSxtcHJpbnRzbGFzaEdGKDYkNyM+SSJQR0YoKiYsKiokSSJ1R0YoIiIkIiRbJyokRjEiIiMiJlQmKilGMSEndCQqPSImRXgqIiIiRjksSCokRjEiIz0iM2M1NVhPJClbaEgqJEYxIiM8IjZfXkF5SGgsQVdfIyokRjEiIzsiOE9yIzNhTFZaXTo1ISoqJEYxIiM6IjtjI1slb0c0aCEqKVJIKEg8KiRGMSIjOSI9T1JNQSlSPzUjKVJWTCEqKj0qJEYxIiM4Ij9zUTlKP0RnNysnby49bjoiKiRGMSIjNyJAZ21bNCp6dS5Tbz0nPihHc0wqJEYxIiM2IkFrQDM2WHFmLGlDPXE8WkBIKiRGMSIjNSJCSHBLblVzJUc/LHM1JnlMSVAiKiRGMSIiKiJCWU4tJnAnZkNULy1vazw+LyFbKiRGMSIiKSJDS1J6NDp6JHonKWYsMih6WCFRTiIqJEYxIiIoIkNOJ3pfaCgqb1AtWCZ6PFY9ajdHKiRGMSIiJyJDZih6RHllZSpcOGVPMzpNVTBTKiRGMSIiJiJDLTdVOFFBcUxKXT42W2RrKSk+KiRGMSIiJSFDTSE9MTI9QmAyZGkvQTIpZlVERjAhQ0Bpd3ZPKFxyIkdTaWdMIVFbJFtGNCFDSTZvLSZmemppbSMqW3hUb1EzJUYxIUMnW2MyRSh6MHV4NV07O1NkKGUjIUM7eGdeMkQlKlx5JFFWaStHW0MiRjlGOTcjRi4=
rem(solve(GB[2],t)*diff(P,u),P,u);
LEwqJEkidUc2IiIjPyE2c216I1Jyay54eFcqJEYkIiM+ITk3JFxeMj9oIzN0dVlpKiRGJCIjPSE8c1VQKTNxKnlEKEhvP0NNKiRGJCIjPCE+X3okKSo0IzQ7Xm5NOVw0JCoqKiRGJCIjOyFBO1sqKjNrPVBNOmtKIzNaKXo7KiRGJCIjOiFDdyQqKT43JWYqNENGPGd6OSM9JW8iKiRGJCIjOSFEI2ZRSHN1KmYyaVhPKVE9QiUqKVsqKiRGJCIjOCFGRyU+U3JDPCpHSjRYTDFZWyJbPEQqJEYkIiM3IUclSCwpUiM+N1cxLWBWPD1NTk42ayIqJEYkIiM2IUc/IlJEJTQqKilIZnUtTyNSPCtCQlpsKiRGJCIjNSFITTBkN1wsI29EbFRsTzUyWjJqTz0qJEYkIiIqIUhEbygqUSIqKXB1VTxUbSk9U2JfYzU5IyokRiQiIikiSFRbOilIOCplXydlb0BMKlInPj0nW3kjKiRGJCIiKCJJVS0oKXljPGBWJipHLT0hZS8hPnhjbUAqJEYkIiInIkkjKWU9VUl4ZFdtJ2VwMnh0VnhBMWYiKiRGJCIiJiFJPFJMIz47RXhEcTwmSC0vdiI+JGVXQSokRiQiIiUhSSxcc3RQPytJKG9MZ0M6dWtWLXYpRyokRiQiIiQhSE8nKlwvM1d0JHlBbDckb0FZWUozaicqJEYkIiIjIkh5VUlfYzhQZ1pgJlJaI3Aob2ooUVMjRiQiSCF5K2UuWFRDPylHby5wcDlxYyQpMyMiSWMhPkRpO1BSWycqXEgyJyl5IilHTFNwIiIiIg==
ceil(log[10](norm(%,infinity)));
IiNT