/- Copyright 2026 The Formal Conjectures Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at https://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. -/ import FormalConjecturesUtil

Bloch and Landau constants

References:

    Wikipedia

    [CP96] Chen, H., Gauthier, P. M. "On Bloch's constant." Journal d'Analyse Mathématique 69 (1996), 275–291.

    [AG37] Ahlfors, L. V., Grunsky, H. "Über die Blochsche Konstante." Mathematische Zeitschrift 42 (1937), 671–673.

    [Ya95] Yanagihara, H. "On the locally univalent Bloch constant." Journal d'Analyse Mathématique 65 (1995), 1–17.

    [Ra43] Rademacher, H. "On the Bloch-Landau Constant."" American Journal of Mathematics 65 (1943), 387–390.

    OptimizationConstants

    [Skin2009] Skinner, Brian. The univalent Bloch constant problem. Complex Variables and Elliptic Equations 54 (2009), no. 10, 951–955.

    MathWorld

    Bhowmik–Sen

open scoped Topology ENNRealopen Metric Set Filternamespace Bloch

The Bloch radius $B_f$ of a function $f$ is the supremum of radii of univalent disks in the image of the unit disk under $f$. Takes values in ℝ≥0∞ so that functions whose image contains arbitrarily large univalent disks correctly get radius rather than 0.

noncomputable def blochRadius (f : ) : ℝ≥0∞ := sSup (ENNReal.ofReal '' {r : | S ball (0 : ) 1, x, ball x r f '' S InjOn f S}) @[category API, AMS 30] lemma zero_le_blochRadius (f : ) : 0 blochRadius f := zero_le _ @[category API, AMS 54] lemma dis_add_radius_le_of_ball_subset_ball {X 𝕜 : Type*} [RCLike 𝕜] [NormedAddCommGroup X] [NormedSpace 𝕜 X] [Nontrivial X] {x y : X} {r d : } (hpos : 0 < r) (hsub : ball x r ball y d) : dist x y + r d := X:Type u_1𝕜:Type u_2inst✝³:RCLike 𝕜inst✝²:NormedAddCommGroup Xinst✝¹:NormedSpace 𝕜 Xinst✝:Nontrivial Xx:Xy:Xr:d:hpos:0 < rhsub:ball x r ball y ddist x y + r d X:Type u_1𝕜:Type u_2inst✝³:RCLike 𝕜inst✝²:NormedAddCommGroup Xinst✝¹:NormedSpace 𝕜 Xinst✝:Nontrivial Xx:Xy:Xr:d:hpos:0 < rhsub:ball x r ball y dthis:Tendsto (fun s => dist x y + s) (𝓝[<] r) (𝓝 (dist x y + r)) := Tendsto.const_add (dist x y) (tendsto_nhds_of_tendsto_nhdsWithin tendsto_id)dist x y + r d X:Type u_1𝕜:Type u_2inst✝³:RCLike 𝕜inst✝²:NormedAddCommGroup Xinst✝¹:NormedSpace 𝕜 Xinst✝:Nontrivial Xx:Xy:Xr:d:hpos:0 < rhsub:ball x r ball y dthis:Tendsto (fun s => dist x y + s) (𝓝[<] r) (𝓝 (dist x y + r)) := Tendsto.const_add (dist x y) (tendsto_nhds_of_tendsto_nhdsWithin tendsto_id)∀ᶠ (c : ) in 𝓝[<] r, dist x y + c d filter_upwards [Ioo_mem_nhdsLT hpos] with t X:Type u_1𝕜:Type u_2inst✝³:RCLike 𝕜inst✝²:NormedAddCommGroup Xinst✝¹:NormedSpace 𝕜 Xinst✝:Nontrivial Xx:Xy:Xr:d:hpos:0 < rhsub:ball x r ball y dthis:Tendsto (fun s => dist x y + s) (𝓝[<] r) (𝓝 (dist x y + r)) := Tendsto.const_add (dist x y) (tendsto_nhds_of_tendsto_nhdsWithin tendsto_id)t:hl:0 < thr:t < rdist x y + t d X:Type u_1𝕜:Type u_2inst✝³:RCLike 𝕜inst✝²:NormedAddCommGroup Xinst✝¹:NormedSpace 𝕜 Xinst✝:Nontrivial Xx:Xy:Xr:d:hpos:0 < rhsub:ball x r ball y dthis:Tendsto (fun s => dist x y + s) (𝓝[<] r) (𝓝 (dist x y + r)) := Tendsto.const_add (dist x y) (tendsto_nhds_of_tendsto_nhdsWithin tendsto_id)t:hl:0 < thr:t < rhxy:x = ydist x y + t dX:Type u_1𝕜:Type u_2inst✝³:RCLike 𝕜inst✝²:NormedAddCommGroup Xinst✝¹:NormedSpace 𝕜 Xinst✝:Nontrivial Xx:Xy:Xr:d:hpos:0 < rhsub:ball x r ball y dthis:Tendsto (fun s => dist x y + s) (𝓝[<] r) (𝓝 (dist x y + r)) := Tendsto.const_add (dist x y) (tendsto_nhds_of_tendsto_nhdsWithin tendsto_id)t:hl:0 < thr:t < rhxy:x ydist x y + t d X:Type u_1𝕜:Type u_2inst✝³:RCLike 𝕜inst✝²:NormedAddCommGroup Xinst✝¹:NormedSpace 𝕜 Xinst✝:Nontrivial Xx:Xy:Xr:d:hpos:0 < rhsub:ball x r ball y dthis:Tendsto (fun s => dist x y + s) (𝓝[<] r) (𝓝 (dist x y + r)) := Tendsto.const_add (dist x y) (tendsto_nhds_of_tendsto_nhdsWithin tendsto_id)t:hl:0 < thr:t < rhxy:x = ydist x y + t d X:Type u_1𝕜:Type u_2inst✝³:RCLike 𝕜inst✝²:NormedAddCommGroup Xinst✝¹:NormedSpace 𝕜 Xinst✝:Nontrivial Xx:Xy:Xr:d:hpos:0 < rhsub:ball x r ball y dthis:Tendsto (fun s => dist x y + s) (𝓝[<] r) (𝓝 (dist x y + r)) := Tendsto.const_add (dist x y) (tendsto_nhds_of_tendsto_nhdsWithin tendsto_id)t:hl:0 < thr:t < rhxy:x = yv:Xhv:v 0dist x y + t d X:Type u_1𝕜:Type u_2inst✝³:RCLike 𝕜inst✝²:NormedAddCommGroup Xinst✝¹:NormedSpace 𝕜 Xinst✝:Nontrivial Xx:Xy:Xr:d:hpos:0 < rt:v:Xhsub:ball y r ball y dthis:Tendsto (fun s => s) (𝓝[<] r) (𝓝 r)hl:0 < thr:t < rhxy:x = yhv:v 0t d X:Type u_1𝕜:Type u_2inst✝³:RCLike 𝕜inst✝²:NormedAddCommGroup Xinst✝¹:NormedSpace 𝕜 Xinst✝:Nontrivial Xx:Xy:Xr:d:hpos:0 < rt:v:Xhsub:ball y r ball y dthis:Tendsto (fun s => s) (𝓝[<] r) (𝓝 r)hl:0 < thr:t < rhxy:x = yhv:v 0u:X := (↑v)⁻¹ vt d have : u = 1 := X:Type u_1𝕜:Type u_2inst✝³:RCLike 𝕜inst✝²:NormedAddCommGroup Xinst✝¹:NormedSpace 𝕜 Xinst✝:Nontrivial Xx:Xy:Xr:d:hpos:0 < rhsub:ball x r ball y ddist x y + r d X:Type u_1𝕜:Type u_2inst✝³:RCLike 𝕜inst✝²:NormedAddCommGroup Xinst✝¹:NormedSpace 𝕜 Xinst✝:Nontrivial Xx:Xy:Xr:d:hpos:0 < rt:v:Xhsub:ball y r ball y dthis:Tendsto (fun s => s) (𝓝[<] r) (𝓝 r)hl:0 < thr:t < rhxy:x = yhv:v 0u:X := (↑v)⁻¹ vv 0; All goals completed! 🐙 calc _ = y + (t : 𝕜) u - y := X:Type u_1𝕜:Type u_2inst✝³:RCLike 𝕜inst✝²:NormedAddCommGroup Xinst✝¹:NormedSpace 𝕜 Xinst✝:Nontrivial Xx:Xy:Xr:d:hpos:0 < rt:v:Xhsub:ball y r ball y dthis✝:Tendsto (fun s => s) (𝓝[<] r) (𝓝 r)hl:0 < thr:t < rhxy:x = yhv:v 0u:X := (↑v)⁻¹ vthis:u = 1 := norm_smul_inv_norm (dis_add_radius_le_of_ball_subset_ball._proof_1 v hv)t = y + t u - y All goals completed! 🐙 _ d := X:Type u_1𝕜:Type u_2inst✝³:RCLike 𝕜inst✝²:NormedAddCommGroup Xinst✝¹:NormedSpace 𝕜 Xinst✝:Nontrivial Xx:Xy:Xr:d:hpos:0 < rt:v:Xhsub:ball y r ball y dthis✝:Tendsto (fun s => s) (𝓝[<] r) (𝓝 r)hl:0 < thr:t < rhxy:x = yhv:v 0u:X := (↑v)⁻¹ vthis:u = 1 := norm_smul_inv_norm (dis_add_radius_le_of_ball_subset_ball._proof_1 v hv)y + t u - y d X:Type u_1𝕜:Type u_2inst✝³:RCLike 𝕜inst✝²:NormedAddCommGroup Xinst✝¹:NormedSpace 𝕜 Xinst✝:Nontrivial Xx:Xy:Xr:d:hpos:0 < rt:v:Xhsub:ball y r ball y dthis✝:Tendsto (fun s => s) (𝓝[<] r) (𝓝 r)hl:0 < thr:t < rhxy:x = yhv:v 0u:X := (↑v)⁻¹ vthis:u = 1 := norm_smul_inv_norm (dis_add_radius_le_of_ball_subset_ball._proof_1 v hv)y + t u - y < r All goals completed! 🐙 X:Type u_1𝕜:Type u_2inst✝³:RCLike 𝕜inst✝²:NormedAddCommGroup Xinst✝¹:NormedSpace 𝕜 Xinst✝:Nontrivial Xx:Xy:Xr:d:hpos:0 < rhsub:ball x r ball y dthis:Tendsto (fun s => dist x y + s) (𝓝[<] r) (𝓝 (dist x y + r)) := Tendsto.const_add (dist x y) (tendsto_nhds_of_tendsto_nhdsWithin tendsto_id)t:hl:0 < thr:t < rhxy:x ydist x y + t d X:Type u_1𝕜:Type u_2inst✝³:RCLike 𝕜inst✝²:NormedAddCommGroup Xinst✝¹:NormedSpace 𝕜 Xinst✝:Nontrivial Xx:Xy:Xr:d:hpos:0 < rhsub:ball x r ball y dthis:Tendsto (fun s => dist x y + s) (𝓝[<] r) (𝓝 (dist x y + r)) := Tendsto.const_add (dist x y) (tendsto_nhds_of_tendsto_nhdsWithin tendsto_id)t:hl:0 < thr:t < rhxy:x yu:X := (↑x - y)⁻¹ (x - y)dist x y + t d have : u = 1 := X:Type u_1𝕜:Type u_2inst✝³:RCLike 𝕜inst✝²:NormedAddCommGroup Xinst✝¹:NormedSpace 𝕜 Xinst✝:Nontrivial Xx:Xy:Xr:d:hpos:0 < rhsub:ball x r ball y ddist x y + r d X:Type u_1𝕜:Type u_2inst✝³:RCLike 𝕜inst✝²:NormedAddCommGroup Xinst✝¹:NormedSpace 𝕜 Xinst✝:Nontrivial Xx:Xy:Xr:d:hpos:0 < rhsub:ball x r ball y dthis:Tendsto (fun s => dist x y + s) (𝓝[<] r) (𝓝 (dist x y + r)) := Tendsto.const_add (dist x y) (tendsto_nhds_of_tendsto_nhdsWithin tendsto_id)t:hl:0 < thr:t < rhxy:x yu:X := (↑x - y)⁻¹ (x - y)x - y 0; All goals completed! 🐙 calc _ = x - y + t := X:Type u_1𝕜:Type u_2inst✝³:RCLike 𝕜inst✝²:NormedAddCommGroup Xinst✝¹:NormedSpace 𝕜 Xinst✝:Nontrivial Xx:Xy:Xr:d:hpos:0 < rhsub:ball x r ball y dthis✝:Tendsto (fun s => dist x y + s) (𝓝[<] r) (𝓝 (dist x y + r)) := Tendsto.const_add (dist x y) (tendsto_nhds_of_tendsto_nhdsWithin tendsto_id)t:hl:0 < thr:t < rhxy:x yu:X := (↑x - y)⁻¹ (x - y)this:u = 1 := norm_smul_inv_norm (dis_add_radius_le_of_ball_subset_ball._proof_2 hxy)dist x y + t = x - y + t All goals completed! 🐙 _ = x + (t : 𝕜) u - y := X:Type u_1𝕜:Type u_2inst✝³:RCLike 𝕜inst✝²:NormedAddCommGroup Xinst✝¹:NormedSpace 𝕜 Xinst✝:Nontrivial Xx:Xy:Xr:d:hpos:0 < rhsub:ball x r ball y dthis✝:Tendsto (fun s => dist x y + s) (𝓝[<] r) (𝓝 (dist x y + r)) := Tendsto.const_add (dist x y) (tendsto_nhds_of_tendsto_nhdsWithin tendsto_id)t:hl:0 < thr:t < rhxy:x yu:X := (↑x - y)⁻¹ (x - y)this:u = 1 := norm_smul_inv_norm (dis_add_radius_le_of_ball_subset_ball._proof_2 hxy)x - y + t = x + t u - y X:Type u_1𝕜:Type u_2inst✝³:RCLike 𝕜inst✝²:NormedAddCommGroup Xinst✝¹:NormedSpace 𝕜 Xinst✝:Nontrivial Xx:Xy:Xr:d:hpos:0 < rhsub:ball x r ball y dthis✝:Tendsto (fun s => dist x y + s) (𝓝[<] r) (𝓝 (dist x y + r)) := Tendsto.const_add (dist x y) (tendsto_nhds_of_tendsto_nhdsWithin tendsto_id)t:hl:0 < thr:t < rhxy:x yu:X := (↑x - y)⁻¹ (x - y)this:u = 1 := norm_smul_inv_norm (dis_add_radius_le_of_ball_subset_ball._proof_2 hxy)x - y + t = x - y + (t * (↑x - y)⁻¹) (x - y) nth_rw 2 [ one_smul 𝕜 (x - y)X:Type u_1𝕜:Type u_2inst✝³:RCLike 𝕜inst✝²:NormedAddCommGroup Xinst✝¹:NormedSpace 𝕜 Xinst✝:Nontrivial Xx:Xy:Xr:d:hpos:0 < rhsub:ball x r ball y dthis✝:Tendsto (fun s => dist x y + s) (𝓝[<] r) (𝓝 (dist x y + r)) := Tendsto.const_add (dist x y) (tendsto_nhds_of_tendsto_nhdsWithin tendsto_id)t:hl:0 < thr:t < rhxy:x yu:X := (↑x - y)⁻¹ (x - y)this:u = 1 := norm_smul_inv_norm (dis_add_radius_le_of_ball_subset_ball._proof_2 hxy)x - y + t = 1 (x - y) + (t * (↑x - y)⁻¹) (x - y) X:Type u_1𝕜:Type u_2inst✝³:RCLike 𝕜inst✝²:NormedAddCommGroup Xinst✝¹:NormedSpace 𝕜 Xinst✝:Nontrivial Xx:Xy:Xr:d:hpos:0 < rhsub:ball x r ball y dthis✝:Tendsto (fun s => dist x y + s) (𝓝[<] r) (𝓝 (dist x y + r)) := Tendsto.const_add (dist x y) (tendsto_nhds_of_tendsto_nhdsWithin tendsto_id)t:hl:0 < thr:t < rhxy:x yu:X := (↑x - y)⁻¹ (x - y)this:u = 1 := norm_smul_inv_norm (dis_add_radius_le_of_ball_subset_ball._proof_2 hxy)x - y + t = 1 + t * (↑x - y)⁻¹ * x - y X:Type u_1𝕜:Type u_2inst✝³:RCLike 𝕜inst✝²:NormedAddCommGroup Xinst✝¹:NormedSpace 𝕜 Xinst✝:Nontrivial Xx:Xy:Xr:d:hpos:0 < rhsub:ball x r ball y dthis✝:Tendsto (fun s => dist x y + s) (𝓝[<] r) (𝓝 (dist x y + r)) := Tendsto.const_add (dist x y) (tendsto_nhds_of_tendsto_nhdsWithin tendsto_id)t:hl:0 < thr:t < rhxy:x yu:X := (↑x - y)⁻¹ (x - y)this:u = 1 := norm_smul_inv_norm (dis_add_radius_le_of_ball_subset_ball._proof_2 hxy)x - y + t = |1 + t * x - y⁻¹| * x - y All goals completed! 🐙 _ d := X:Type u_1𝕜:Type u_2inst✝³:RCLike 𝕜inst✝²:NormedAddCommGroup Xinst✝¹:NormedSpace 𝕜 Xinst✝:Nontrivial Xx:Xy:Xr:d:hpos:0 < rhsub:ball x r ball y dthis✝:Tendsto (fun s => dist x y + s) (𝓝[<] r) (𝓝 (dist x y + r)) := Tendsto.const_add (dist x y) (tendsto_nhds_of_tendsto_nhdsWithin tendsto_id)t:hl:0 < thr:t < rhxy:x yu:X := (↑x - y)⁻¹ (x - y)this:u = 1 := norm_smul_inv_norm (dis_add_radius_le_of_ball_subset_ball._proof_2 hxy)x + t u - y d X:Type u_1𝕜:Type u_2inst✝³:RCLike 𝕜inst✝²:NormedAddCommGroup Xinst✝¹:NormedSpace 𝕜 Xinst✝:Nontrivial Xx:Xy:Xr:d:hpos:0 < rhsub:ball x r ball y dthis✝:Tendsto (fun s => dist x y + s) (𝓝[<] r) (𝓝 (dist x y + r)) := Tendsto.const_add (dist x y) (tendsto_nhds_of_tendsto_nhdsWithin tendsto_id)t:hl:0 < thr:t < rhxy:x yu:X := (↑x - y)⁻¹ (x - y)this:u = 1 := norm_smul_inv_norm (dis_add_radius_le_of_ball_subset_ball._proof_2 hxy)x + t u - x < r All goals completed! 🐙 @[category API, AMS 54] lemma radius_le_of_ball_subset_ball {X 𝕜 : Type*} [RCLike 𝕜] [NormedAddCommGroup X] [NormedSpace 𝕜 X] [Nontrivial X] {x y : X} {r d : } (hpos : 0 < r) (hsub : ball x r ball y d) : r d := trans (X:Type u_1𝕜:Type u_2inst✝³:RCLike 𝕜inst✝²:NormedAddCommGroup Xinst✝¹:NormedSpace 𝕜 Xinst✝:Nontrivial Xx:Xy:Xr:d:hpos:0 < rhsub:ball x r ball y dr dist x y + r All goals completed! 🐙) (dis_add_radius_le_of_ball_subset_ball (𝕜 := 𝕜) hpos hsub) @[category API, AMS 30] lemma blochRadius_id_eq_one : blochRadius id = 1 := blochRadius id = 1 blochRadius id 11 blochRadius id blochRadius id 1 -- blochRadius id ≤ 1: every valid radius r satisfies r ≤ 1 b ENNReal.ofReal '' {r | S ball 0 1, x, ball x r id '' S InjOn id S}, b 1 r:S:Set hS:S ball 0 1x:hball:ball x r id '' SENNReal.ofReal r 1 r:S:Set hS:S ball 0 1x:hball:ball x r SENNReal.ofReal r 1 r:S:Set hS:S ball 0 1x:hball:ball x r Shpos:0 < rENNReal.ofReal r 1r:S:Set hS:S ball 0 1x:hball:ball x r Shpos:¬0 < rENNReal.ofReal r 1 r:S:Set hS:S ball 0 1x:hball:ball x r Shpos:0 < rENNReal.ofReal r 1 exact (ENNReal.ofReal_le_ofReal (radius_le_of_ball_subset_ball (𝕜 := ) hpos (hball.trans hS))).trans (r:S:Set hS:S ball 0 1x:hball:ball x r Shpos:0 < rENNReal.ofReal 1 1 All goals completed! 🐙) r:S:Set hS:S ball 0 1x:hball:ball x r Shpos:¬0 < rENNReal.ofReal r 1 exact (ENNReal.ofReal_of_nonpos (r:S:Set hS:S ball 0 1x:hball:ball x r Shpos:¬0 < rr 0 All goals completed! 🐙)).le.trans (zero_le _) 1 blochRadius id -- 1 ≤ blochRadius id: ball 0 1 ⊆ id '' ball 0 1 ENNReal.ofReal 1 blochRadius id exact le_sSup 1, ball (0 : ) 1, Subset.rfl, 0, ball 0 1 id '' ball 0 1 InjOn id (ball 0 1) All goals completed! 🐙, rfl

The Landau radius $L_f$ of a function $f$ is the supremum of radii of disks contained in the image of the unit disk under $f$. Takes values in ℝ≥0∞ so that functions with unbounded image correctly get radius .

noncomputable def landauRadius (f : ) : ℝ≥0∞ := sSup (ENNReal.ofReal '' {r : | x, ball x r f '' (ball (0 : ) 1)})

The Bloch constant $B$ is the largest radius such that every holomorphic function on the unit disk with $f'(0) = 1$ has a schlicht (univalent) disk of that radius in its image.

noncomputable def blochConstant : := sSup {B : | f : , DifferentiableOn f (ball 0 1) deriv f 0 = 1 S ball 0 1, x, ball x B f '' S InjOn f S}

It is proved in [CP96] that the Bloch constant is bounded below by $\sqrt{3}/4 + 2 \times 10^{-4}$

@[category research solved, AMS 30] theorem declaration uses 'sorry'blochConstant_lower_bound : Real.sqrt 3 / 4 + 2 * 10 ^ (-4 : ) blochConstant := 3 / 4 + 2 * 10 ^ (-4) blochConstant All goals completed! 🐙

It is proved in [AG37] that the Bloch constant is bounded above by $\frac{1}{\sqrt{1 + \sqrt{3}}}\frac{\Gamma(1/3) \Gamma(11/12)}{\Gamma(1/4)}$$.

@[category research solved, AMS 30] theorem declaration uses 'sorry'blochConstant_upper_bound : blochConstant Real.Gamma (1 / 3) * Real.Gamma (11 / 12) / (Real.Gamma (1 / 4) * Real.sqrt (1 + Real.sqrt 3)) := blochConstant Real.Gamma (1 / 3) * Real.Gamma (11 / 12) / (Real.Gamma (1 / 4) * (1 + 3)) All goals completed! 🐙

Ahlfors and Grunsky also conjectured in [AG37] that this upper bound is the precise value of the Bloch constant.

@[category research open, AMS 30] theorem declaration uses 'sorry'blochConstant_exact_value : blochConstant = Real.Gamma (1 / 3) * Real.Gamma (11 / 12) / (Real.Gamma (1 / 4) * Real.sqrt (1 + Real.sqrt 3)) := blochConstant = Real.Gamma (1 / 3) * Real.Gamma (11 / 12) / (Real.Gamma (1 / 4) * (1 + 3)) All goals completed! 🐙

The Univalent Bloch constant $B_u$ is the largest radius such that every univalent holomorphic function on the unit disk with $f'(0) = 1$ has a schlicht disk of that radius in its image.

noncomputable def univalentBlochConstant : := sSup {B : | f : , InjOn f (ball 0 1) DifferentiableOn f (ball 0 1) deriv f 0 = 1 S ball 0 1, x, ball x B f '' S InjOn f S}

It is proved in [Skin2009] that the Univalent Bloch constant is bounded below by $0.5708858$.

@[category research solved, AMS 30] theorem declaration uses 'sorry'univalentBlochConstant_lower_bound : 0.5708858 univalentBlochConstant := 0.5708858 univalentBlochConstant All goals completed! 🐙

The Univalent Bloch constant is trivially bounded above by the Bloch radius of the identity function, which is $1$. This is the best upper bound we know according to [OptimizationConstants].

@[category research solved, AMS 30] theorem univalentBlochConstant_upper_bound : univalentBlochConstant 1 := univalentBlochConstant 1 {B | (f : ), InjOn f (ball 0 1) DifferentiableOn f (ball 0 1) deriv f 0 = 1 S ball 0 1, x, ball x B f '' S InjOn f S}.Nonempty b {B | (f : ), InjOn f (ball 0 1) DifferentiableOn f (ball 0 1) deriv f 0 = 1 S ball 0 1, x, ball x B f '' S InjOn f S}, b 1 {B | (f : ), InjOn f (ball 0 1) DifferentiableOn f (ball 0 1) deriv f 0 = 1 S ball 0 1, x, ball x B f '' S InjOn f S}.Nonempty -- the set is nonempty: 0 is in it (ball x 0 = ∅ ⊆ anything) exact 0, fun f _ _ _ => , empty_subset _, 0, f: x✝²:InjOn f (ball 0 1)x✝¹:DifferentiableOn f (ball 0 1)x✝:deriv f 0 = 1ball 0 0 f '' InjOn f All goals completed! 🐙 b {B | (f : ), InjOn f (ball 0 1) DifferentiableOn f (ball 0 1) deriv f 0 = 1 S ball 0 1, x, ball x B f '' S InjOn f S}, b 1 -- every B in the set is ≤ 1 intro B B:hB:B {B | (f : ), InjOn f (ball 0 1) DifferentiableOn f (ball 0 1) deriv f 0 = 1 S ball 0 1, x, ball x B f '' S InjOn f S}B 1 have h := hB id (injOn_id _) differentiableOn_id (B:hB:B {B | (f : ), InjOn f (ball 0 1) DifferentiableOn f (ball 0 1) deriv f 0 = 1 S ball 0 1, x, ball x B f '' S InjOn f S}deriv id 0 = 1 All goals completed! 🐙) B:hB:B {B | (f : ), InjOn f (ball 0 1) DifferentiableOn f (ball 0 1) deriv f 0 = 1 S ball 0 1, x, ball x B f '' S InjOn f S}S:Set hS:S ball 0 1x:hball:ball x B id '' SB 1 B:hB:B {B | (f : ), InjOn f (ball 0 1) DifferentiableOn f (ball 0 1) deriv f 0 = 1 S ball 0 1, x, ball x B f '' S InjOn f S}S:Set hS:S ball 0 1x:hball:ball x B SB 1 B:hB:B {B | (f : ), InjOn f (ball 0 1) DifferentiableOn f (ball 0 1) deriv f 0 = 1 S ball 0 1, x, ball x B f '' S InjOn f S}S:Set hS:S ball 0 1x:hball:ball x B Shpos:0 < BB 1B:hB:B {B | (f : ), InjOn f (ball 0 1) DifferentiableOn f (ball 0 1) deriv f 0 = 1 S ball 0 1, x, ball x B f '' S InjOn f S}S:Set hS:S ball 0 1x:hball:ball x B Shpos:¬0 < BB 1 B:hB:B {B | (f : ), InjOn f (ball 0 1) DifferentiableOn f (ball 0 1) deriv f 0 = 1 S ball 0 1, x, ball x B f '' S InjOn f S}S:Set hS:S ball 0 1x:hball:ball x B Shpos:0 < BB 1 All goals completed! 🐙 B:hB:B {B | (f : ), InjOn f (ball 0 1) DifferentiableOn f (ball 0 1) deriv f 0 = 1 S ball 0 1, x, ball x B f '' S InjOn f S}S:Set hS:S ball 0 1x:hball:ball x B Shpos:¬0 < BB 1 All goals completed! 🐙

The Landau constant $L$ is the largest radius such that every holomorphic function on the unit disk with $f'(0) = 1$ has a disk of that radius contained in its image.

noncomputable def landauConstant : := sSup {B : | f : , DifferentiableOn f (ball 0 1) deriv f 0 = 1 x, ball x B f '' (ball 0 1)}

It is proved in [Ya95] that the Landau constant is bounded below by $0.5 + 10 ^ {-335}$.

@[category research solved, AMS 30] theorem declaration uses 'sorry'landauConstant_lower_bound : 0.5 + 10 ^ (-335 : ) landauConstant := 0.5 + 10 ^ (-335) landauConstant All goals completed! 🐙

It is proved in [Ra43] that the Landau constant is bounded above by $\frac{1}{\sqrt{1 + \sqrt{3}}}\frac{\Gamma(1/3) \Gamma(5/6)}{\Gamma(1/6)}$.

@[category research solved, AMS 30] theorem declaration uses 'sorry'landauConstant_upper_bound : landauConstant Real.Gamma (1 / 3) * Real.Gamma (5 / 6) / Real.Gamma (1 / 6) := landauConstant Real.Gamma (1 / 3) * Real.Gamma (5 / 6) / Real.Gamma (1 / 6) All goals completed! 🐙

In [Ra43], Rademacher says that he strongly believed that this upper bound is the precise value of the Landau constant.

@[category research open, AMS 30] theorem declaration uses 'sorry'landauConstant_exact_value : landauConstant = Real.Gamma (1 / 3) * Real.Gamma (5 / 6) / Real.Gamma (1 / 6) := landauConstant = Real.Gamma (1 / 3) * Real.Gamma (5 / 6) / Real.Gamma (1 / 6) All goals completed! 🐙 end Bloch