1 (* ========================================================================== *)
2 (* FLYSPECK - BOOK FORMALIZATION *)
4 (* Nonlinear Inequalities *)
5 (* Chapter: Further Results *)
6 (* Section: Strong Dodecahedral Conjecture *)
7 (* Author: Thomas C. Hales *)
9 (* ========================================================================== *)
13 Nonlinear inequalities for the Strong Dodecahedral Conjecture,
15 The inequalities in this file are not part of the Flyspeck project.
16 But they are in the book "Dense Sphere Packings"
22 module Strongdodec_ineq = struct
24 (* strong dodecahedral conjecture *)
26 let ydodec = new_definition (* $y_D$ *)
27 `ydodec = @y. sol_y (#2.0) (#2.0) (#2.0) y y y = pi/ (#5.0)`;;
30 let rad_y = new_definition
31 `rad2_y y1 y2 y3 y4 y5 y6 = rad2_x (y1*y1) (y2*y2) (y3*y3) (y4*y4) (y5*y5) (y6*y6)`;;
34 let fdodec = new_definition (* $f$ *)
36 #6.0 * volR #1.0 (eta_y #2.0 #2.0 y) (sqrt (rad2_y #2.0 #2.0 #2.0 y y y))
37 + a* sol_y #2.0 #2.0 #2.0 y y y + #3.0 * b * dih_y #2.0 #2.0 #2.0 y y y`;;
39 let dfdodec = new_definition `dfdodec a b = @d.
40 ((\t. fdodec t a b) has_real_derivative d) (atreal ydodec)`;;
42 let abdodec = new_definition `abdodec = @ab.
43 (fdodec ydodec (FST ab) (SND ab) = &0) /\
44 (dfdodec (FST ab) (SND ab) = &0)`;;
46 let adodec = new_definition (* $a_D$ *) `adodec = FST abdodec`;;
48 let bdodec = new_definition (* $b_D$ *) `bdodec = SND abdodec`;;
50 let surfR = new_definition `surfR a b c = #3.0 * volR a b c / a`;;
52 let surfRy = new_definition `surfRy y1 y2 y6 c =
53 surfR (y1/ &2) (eta_y y1 y2 y6) c`;;
56 let surfRyc2 = new_definition `surfRyc2 y1 y2 y6 c =
57 surfR (y1/ &2) (eta_y y1 y2 y6) (sqrt c)`;;
60 let surfRdyc2 = new_definition `surfRdyc2 y1 y2 y6 c2 =
61 surfRy y1 y2 y6 (sqrt c2) + surfRy y2 y1 y6 (sqrt c2)`;;
64 (* S.P.I. sec. 8.6.3: *)
67 let surfRx = new_definition `surfRx c x1 x2 x3 x4 x5 x6 =
68 sqrt(x1) * (x2 + x6 - x1) * sqrt(c*c - eta_x x1 x2 x6)/
69 (&2 * sqrt(ups_x x1 x2 x6) )`;;
73 let surfRx_div_sqrt_delta = new_definition `surfRx_div_sqrt_delta x1 x2 x3 x4 x5 x6 =
76 (* surfRy y1 y2 y6 c = surfRx c (y1 * y1) (y2 * y2) . . . (y6 * y6) *)
78 let surfy = new_definition `surfy y1 y2 y3 y4 y5 y6 =
79 (let c = sqrt(rad2_y y1 y2 y3 y4 y5 y6) in
80 surfRy y1 y2 y6 c + surfRy y2 y1 y6 c +
81 surfRy y2 y3 y4 c + surfRy y3 y2 y4 c +
82 surfRy y3 y1 y5 c + surfRy y1 y3 y5 c)`;;
84 let surf_x = new_definition `surf_x x1 x2 x3 x4 x5 x6 =
85 surfy (sqrt x1) (sqrt x2) (sqrt x3) (sqrt x4) (sqrt x5) (sqrt x6)`;;
88 let surfR126_x = new_definition `surfR126_x c2 x1 (x2:real) (x3:real) (x4:real) (x5:real) x6 =
89 surfRyc2 (sqrt x1) (sqrt x2) (sqrt x6) c2`;;
92 let surfR126d = new_definition `surfR126d c2 x1 (x2:real) (x3:real) (x4:real) (x5:real) x6 =
93 surfRdyc2 (sqrt x1) (sqrt x2) (sqrt x6) c2`;;
99 let pyth_x1 = new_definition `pyth_x1 (x1:real) (x2:real) (x3:real)
100 (x4:real) (x5:real) (x6:real) = sqrt (&2 - x1 / (&4))`;;
103 let all_forall = Sphere.all_forall;;
108 ineq = all_forall `ineq
118 let chex = &1 / sqrt(&3) - &2 * pi / &9 in
119 (y_of_x ell_uvx y1 y2 y3 y4 y5 y6
121 (&4 / &3) * y_of_x arclength_x_123 y1 y2 y3 y4 y5 y6 +
122 chex * lfun(y1/ &2) + chex * lfun(y2 / &2)
124 doc = "Two dimensional analogue of strong dodecahedral conjecture (hexagon perimeter).
126 tags = [Tex;Cfsqp;Xconvert;Strongdodec];
131 ineq = all_forall `ineq
141 let chex = &1 / sqrt(&3) - &2 * pi / &9 in
142 ((y_of_x ell_uvx y1 y2 y3 y4 y5 y6
144 (&4 / &3) * y_of_x arclength_x_123 y1 y2 y3 y4 y5 y6 +
146 ) \/ (y_of_x ell_vx2 y1 y2 y3 y4 y5 y6
148 (&4 / &3) * y_of_x arclength_x_123 y1 y2 y3 y4 y5 y6 +
149 chex * lfun(y2 / &2))))`;
150 doc = "Two dimensional analogue of strong dodecahedral conjecture (hexagon perimeter).
152 tags = [Tex;Cfsqp;Xconvert;Strongdodec];
158 ineq = all_forall `ineq
168 let chex = &1 / sqrt(&3) - &2 * pi / &9 in
169 (y_of_x ell_uvx y1 y2 y3 y4 y5 y6
171 (&4 / &3) * y_of_x arclength_x_123 y1 y2 y3 y4 y5 y6
173 doc = "Two dimensional analogue of strong dodecahedral conjecture (hexagon perimeter).
175 tags = [Tex;Cfsqp;Xconvert;Strongdodec];
181 ineq = all_forall `ineq
191 let chex = &1 / sqrt(&3) - &2 * pi / &9 in
192 (y_of_x ell_uvx y1 y2 y3 y4 y5 y6
194 (&4 / &3) * y_of_x arclength_x_123 y1 y2 y3 y4 y5 y6 +
195 chex * lfun(y1/ &2) + chex * lfun(y2 / &2)
197 doc = "Two dimensional analogue of strong dodecahedral conjecture (hexagon perimeter).
199 tags = [Tex;Eps 1.0e-8;Cfsqp;Xconvert;Strongdodec;];
204 ineq = all_forall `ineq
214 let chex = &1 / sqrt(&3) - &2 * pi / &9 in
215 (y_of_x ell_uvx y1 y2 y3 y4 y5 y6
217 (&4 / &3) * y_of_x arclength_x_123 y1 y2 y3 y4 y5 y6 +
218 chex * lfun(y1/ &2) + chex * lfun(y2 / &2)
220 doc = "Two dimensional analogue of strong dodecahedral conjecture (hexagon perimeter).
222 tags = [Tex;Eps 1.0e-8;Cfsqp;Xconvert;Strongdodec;Onlycheckderiv1negative];
226 (* D4-inequality, sharp at (2,2,2,ydodec,ydodec,ydodec)
227 The domain has been simiplified by arguments in software_guide.tex *)
231 ineq = all_forall `ineq
239 ((surfy y1 y2 y3 y4 y5 y6 + #3.0*adodec*sol_y y1 y2 y3 y4 y5 y6
240 + &3 * bdodec*(lmfun(y1/ &2)*dih_y y1 y2 y3 y4 y5 y6
241 + lmfun(y2/ &2)*dih2_y y1 y2 y3 y4 y5 y6
242 + lmfun(y3/ &2)*dih3_y y1 y2 y3 y4 y5 y6
243 ) > &0) \/ (rad2_y y1 y2 y3 y4 y5 y6 > #1.375 * #1.375))`;
244 doc = "Strong dodecahedral conjecture D4 case.";
245 tags = [Flypaper["TNVWUGK"];Tex;Cfsqp;Xconvert;Strongdodec;Branching;Split[0;1;2]];
250 ineq = all_forall `ineq
258 ((surfy y1 y2 y3 y4 y5 y6 + #3.0*adodec*sol_y y1 y2 y3 y4 y5 y6
259 + &3 * bdodec*(lfun(y1/ &2)*dih_y y1 y2 y3 y4 y5 y6
260 + lfun(y2/ &2)*dih2_y y1 y2 y3 y4 y5 y6
261 + lfun(y3/ &2)*dih3_y y1 y2 y3 y4 y5 y6
262 ) > &0) \/ (rad2_y y1 y2 y3 y4 y5 y6 > #1.375 * #1.375))`;
263 doc = "Strong dodecahedral conjecture D4 case.";
264 tags = [Flypaper["TNVWUGK"];Tex;Cfsqp;Xconvert;Strongdodec;];
269 ineq = all_forall `ineq
277 ((surfy y1 y2 y3 y4 y5 y6 + #3.0*adodec*sol_y y1 y2 y3 y4 y5 y6
278 + &3 * bdodec*(lfun(y1/ &2)*dih_y y1 y2 y3 y4 y5 y6
279 + lfun(y2/ &2)*dih2_y y1 y2 y3 y4 y5 y6
280 + lfun(y3/ &2)*dih3_y y1 y2 y3 y4 y5 y6
282 doc = "Strong dodecahedral conjecture D4 case.";
283 tags = [Flypaper["TNVWUGK"];Tex;Cfsqp;Xconvert;Strongdodec;];
288 ineq = all_forall `ineq
296 ((surfy y1 y2 y3 y4 y5 y6 + #3.0*adodec*sol_y y1 y2 y3 y4 y5 y6
297 + &3 * bdodec*(lfun(y1/ &2)*dih_y y1 y2 y3 y4 y5 y6
298 + lfun(y2/ &2)*dih2_y y1 y2 y3 y4 y5 y6
299 + lfun(y3/ &2)*dih3_y y1 y2 y3 y4 y5 y6
301 doc = "Strong dodecahedral conjecture D4 case. I have used a Mathematica
302 calculation to reduce this inequality to showing that dimension reduction
303 holds in the variables $y_1,y_2,y_3$. In other words,
304 along the 3 dimensional subspace $(2,2,2,y_4,y_5,y_6)$,
305 Mathematica gives exact analysis showing that the only minimum is at
306 $(2,2,2,y_D,y_D,y_D)$. This exact analysis goes along the lines of
307 the analytic Voronoi cases in Ferguson's thesis.
308 For dimension reduction in $y_1$, the only relevant
309 terms are $\\op{surfy}$ and $\\op{lfun}(y_1/2)\\op{dih}$.";
310 tags = [Flypaper["TNVWUGK"];Tex;Cfsqp;Xconvert;Eps 1.0e-13;Strongdodec;Onlycheckderiv1negative];
314 (* D3-local inequality for strong dodecahedral conjecture
315 The domain has been simplified by arguments in nonlinear_list.tex
320 ineq = all_forall `ineq
327 (let c2 = (#1.375 pow 2) in
328 (surfRdyc2 y1 y2 y6 c2
329 + #3.0 * adodec * (sol_y y1 y2 y3 y4 y5 y6)
330 + #3.0 * bdodec * (lmfun (y1/ &2)* dih_y y1 y2 y3 y4 y5 y6
331 + lmfun (y2/ &2)*dih2_y y1 y2 y3 y4 y5 y6) >= &0)
332 \/ ((eta_y y1 y2 y6) pow 2 > #1.35 * #1.35))`;
333 doc = "Strong dodecahedral conjecture D3 case.";
334 (* was (solRy y1 y2 y6 c + solRy y2 y1 y6 c) *)
335 tags = [Flypaper["TNVWUGK"];Tex;Cfsqp;Xconvert;Strongdodec;Branching;Split[0;1]];